Swift中常见关键字解释

Swift中关键字比较多,大部份刚开始学的时候看到这么多有点慌,初步整理一份,持续更新。

Like an if statement, guard executes statements based on a Boolean value of an expression. Unlike an if statement, guard
statements only run if the conditions are not met. You can think of guard more like anAssert , but rather than crashing, you can gracefully exit.

和if语句类似,也是根据bool值来判断,但guard只有在条件不满足的时候触发。你也可以把它看作一种异常处理。

问号是optional的缩写。Swift里不会自动给变量赋初始值,也就是说变量不会有默认值,所以要求使用变量之前必须要对其初始化。
一旦声明为Optional的,如果不显式的赋值就会有个默认值nil。

  • !

感叹号表示“所修饰的这个符号里面的值一定是非nil的。

swift中有个双问号操作符(??),可以用来快速对nil进行条件判断, 对于不期望某个optional值为nil时func返回nil 或者 因为其值为nil而停止了后续业务的情况下,我们可以用"??"在optionalValue为nil时做赋值保险操作(“??”操作后返回值为非optional)
用法:
newValue = optionalValue ?? value
若optionalValue非nil时,newValue的值为optionalValue的值,若optionalValue为nil时,newValue的值为value的值

上面几个关键字是swift的访问控制符

private 访问级别所修饰的属性或者方法只能在当前类里访问。
fileprivate 访问级别所修饰的属性或者方法在当前的Swift源文件里可以访问。
internal 访问级别所修饰的属性或方法在源代码所在的整个模块都可以访问。
如果是框架或者库代码,则在整个框架内部都可以访问,框架由外部代码所引用时,则不可以访问。
如果是App代码,也是在整个App代码,也是在整个App内部可以访问。
public 可以被任何人访问。但其他module中不可以被override和继承,而在module内可以被override和继承。
open 可以被任何人使用,包括override和继承。

let 代表修饰的是常量,不可变。
var 修饰的是变量,可变。

和oc类似,在现有类和结构体的类型基础上,扩展新的功能。

下划线的功能有很多,主要是用来占位,但具体占位的作用可以参考上面的链接。

主要用来 声明外部函数名,

  • ...
    --

和省略号的作用是一样的,代表后面还有很多,比如多个参数。又或者代表某个范围1...5

  • $
    --

为了能够在实例方法中修改属性值,可以在方法定义前添加关键字mutating

如果我们希望一个函数可以修改它的参数变量的值,我们可以使用 inout 关键词。这个相当于编程语言概念中所谓的传址调用。

使用@objc修饰后的类型,可以直接供 Objective-C 调用

对于函数,类,协议等,可以使用@available声明这些类型的生命周期依赖于特定的平台和操作系统版本。而#available用在判断语句中(if, guard, while等),在不同的平台上做不同的逻辑。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 对各种值为"空"的情况处理不当,几乎是所有Bug的来源。 在我们的例子里,尽管tmp的值是nil,但调用tmp的r...
    AKyS佐毅阅读 13,585评论 1 13
  • Swift 介绍 简介 Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序 ...
    大L君阅读 8,584评论 3 25
  • Swift 简介 查看Swift当前版本 简介 Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X...
    mian小爬阅读 2,915评论 0 1
  • 在此特此声明:一下所有链接均来自互联网,在此记录下我的查阅学习历程,感谢各位原创作者的无私奉献 ! 技术一点一点积...
    远航的移动开发历程阅读 13,891评论 12 197
  • 线程,进程:出身贵族的进程,一出生就有自己的封地和钱粮,干活的事是底下的管家工人们的事儿,他只管发工资。 三次握手...
    niuniuniu阅读 2,778评论 0 0

友情链接更多精彩内容