素材:[A Swift Tour](https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/GuidedTour.html#//apple_ref/doc/uid/TP40014097-CH2-ID1) 推荐下载Playground:[Download Playground](https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/GuidedTour.playground.zip) objc 自己较为熟悉,想熟悉下风头正劲的 swift。就先从官方的入门手册开始撸。 每一小节,我都摘录或总结3个对自己三观冲击最大的【知识点】,以方便以后温习。总结不保证绝对正确,仅供交流之用。O(∩_∩)O哈哈~ ### Simple Values * var 表示变量 * let 声明常量 * [] 用于声明数组和字符串 ### Control Flow * if 或 while 等的判断条件中必须使用布尔值. * 判断条件中的可能为 nil 值,统一使用 let varName = maybeNil 语法. * for in 循环,可同时应用于数组,字典或特定范围(Range). ### Functions and Closures * 形参新增了 "标签" 语义,有效丰富了函数重载的语义 * "标签" 语义,不适合用于用作函数参数或函数返回值的函数的声明里. * 闭包中,区分参数和函数体的,是通过 in 关键字来分割的. ### Objects and Classes * swift 默认不会使用零值在声明时初始化变量. * let 常量,只能初始化一次,但可以不在声明时立即初始化. * 子类初始化顺序是: 子类未初始化属性的初始化 --> 调用父类 init 方法 --> 其他额外操作 ### Enumerations and Structures * struct 是复制传值,即使只是简单的 var a = b, a 和 b 也是两个独立的对象. * enum 不是必须和某个类型值的关联. * enum 可以使用某种模式来作为动态匹配的 case. ### Protocols and Extensions * 增加新数据结构通用语法: [class|struct|enum|extension|protocol] 名称 : [class|protocol] {...} * Int 等基础类型,其实现是一个 Struct * enum 和 extension 不可以持有属性,但是可以用 get 方法来模拟一个属性 ### Error Handling * try 和有 throws 声明的函数配对使用. * try? 可选操作,有异常抛出则返回nil; try! 强制操作,有异常抛出,则抛出无法 do-catch 的致命异常. * defer block 在函数异常退出时,也可以正常执行. ### Generics * 函数,方法,类,枚举和结构体支持泛型的泛型的方式,就是在声明时的名称后,加 <泛型1, 泛型2, ...> * 使用泛型时,要保证能在编译期推导出其类型. * 可以使用 where 指定对泛型类型本身的一些要求.
内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!