Swift 4.2使用self做为变量名浅析

 更新时间:2018年09月26日 14:17:36   作者:没故事的卓同学  
这篇文章主要给大家介绍了关于Swift 4.2使用self做为变量名的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

Swift 4.2是Swift 4的第二次小更新,随之带来了很多很棒的改进-这使得今年将成为Swift的重要一年,并且更加确认这个社区驱动的Swift演变进程正在让一个伟大的语言变得更好。

在Swift 4.2版本更新中,有4个主要内容:

  • 更快的编译速度
  • 新的语言特性提高效率,移除样板代码
  • Swift的SDK改进
  • 改进二进制兼容性

在 4.2 之前,self 是全局保留关键字,所以如果在逃逸闭包中如果在闭包中把 self 标记为 weak 后,如果要使用需要使用 ` 包起来:

guard let `self` = self else { return }

虽然这样解决了变量名的问题,但是也带来另外一个困扰,控制台里不会显示一个名为 self 的变量。所以也有一种普遍的做法是取个别名,比如 strongSelf:

doSomething(then: { [weak self] in
 guard let strongSelf = self { else return }
 strongSelf.doSomethingElse()
)

虽然这种写法达到了目的,但是如果一个刚上手的开发者看到这样的写法肯定会一头雾水。

我等能做的当然就是给苹果爸爸不断的提意见啦。皇天不负有心人,在 4.2 中苹果终于响应了这个要求!现在 otional binding 中 self 不再作为保留关键字。

现在可以光明正大这么写了:

guard let self = self else { return }

当然取消了这个限制后也意味着 self 可能不一定是 self 了:

  var number: Int? = nil
  if let self = number {
  print(self) // 这里的 self 是 number:Int
  }

希望大家使用 self 作为 optional binding 变量名的时候还是用在正确的地方,免得造成其他的困扰。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • 利用swift实现卡片横向滑动动画效果的方法示例

    利用swift实现卡片横向滑动动画效果的方法示例

    卡片横向滑动动画效果相信对大家来说都不陌生,下面这篇文章主要给大家介绍了关于利用swift实现卡片横向滑动动画效果的方法示例,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-07-07
  • Swift中的Access Control权限控制介绍

    Swift中的Access Control权限控制介绍

    这篇文章主要介绍了Swift中的Access Control权限控制介绍,本文讲解了private、internal、public三个关键字的使用,需要的朋友可以参考下
    2015-05-05
  • 在SpringBoot中实现适配器模式的两种方式

    在SpringBoot中实现适配器模式的两种方式

    这篇文章主要介绍了在SpringBoot中实现适配器模式的两种方式,通过实现类定义类型字段实现和以动态service名称的方式实现,并且通过代码示例讲解的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2024-03-03
  • Swift4使用GCD实现计时器

    Swift4使用GCD实现计时器

    这篇文章主要为大家详细介绍了Swift4使用GCD实现计时器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • swift实现简单的计算器

    swift实现简单的计算器

    这篇文章主要为大家详细介绍了swift实现简单的计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Objective-C和Swift的转换速查手册(推荐)

    Objective-C和Swift的转换速查手册(推荐)

    这篇文章主要给大家介绍了关于Objective-C和Swift的转换速查手册的相关资料,文中通过示例代码介绍的非常详细,非常推荐给大家参考学习使用,需要的朋友们下面随着小编来一起学习学习不
    2018-06-06
  • 详解Swift中的下标访问用法

    详解Swift中的下标访问用法

    在Swift中我们可以用subscript函数来定义下标,从而通过下标来访问数组与字典等数据结构,这里我们就来详解Swift中的下标访问用法:
    2016-07-07
  • Swift中常量和变量的区别与声明详解

    Swift中常量和变量的区别与声明详解

    Swift语言同样和Java和OC等语言一样是同样是需要声明常量和变量的,下面就让我们来学习一下Swift的常量和变量。这篇文章主要给大家介绍了关于Swift中常量和变量的区别与声明的相关资料,需要的朋友可以参考下。
    2017-11-11
  • Swift类型创建之自定义一个类型详解

    Swift类型创建之自定义一个类型详解

    这篇文章主要介绍了Swift类型创建之自定义一个类型详解,本文讲解了自定义原型、实现默认值、支持基本布尔型初始化、支持Bool类型判断、支持兼容各们各派的类型、完善OCBool的布尔基因体系等内容,需要的朋友可以参考下
    2015-05-05
  • 深入理解Swift中单例模式的替换及Swift 3.0单例模式的实现

    深入理解Swift中单例模式的替换及Swift 3.0单例模式的实现

    这篇文章主要给大家介绍了关于Swift中单例模式替换的相关资料,然后又跟大家分享了关于Swift3.0 单例模式实现的几种方法-Dispatch_Once的内容,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-11-11

最新评论