微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swift 学习笔记 [1] 类型 值 集合 函数 闭包

Swift 已经出了第三个大版本了,重大改动应该比较少了,开始学习此语言,学习过程中发现 swift 和 objective-c 是完全两个不同的东西,不要小看了这门新语言。Swift 刚出来的时候标榜简单易学易开发,又有Playground一众利器帮忙宣传,很多人表示iOS 的学习成本降低了, 从学习的过程中看,是降低了一些(和Objective-C相比)。

Swift 作为强类型语言,体现出了弱类型语言的一些特性,参考了其他优秀的语言,本质上还是高级语言。简化的内容到放到了底层,是方便了开发,如果出了一些疑难的问题,还是要深入到底层去。

这里只放了一些我觉得和其他语言不一样,以及我想加深的内容仅仅做个学习补充,如果发现有的东西你完全没概念,就该去查看官方文档

类型

  1. 元祖的定义 换括号把多个值组合成一个复合值
  2. 可选类型 已有类型后跟着? 如 Int? 表示 可接受‘Int‘ 和 ‘值缺失(nil)’ 两种情况
  3. nil 定义为值缺失
  4. ? var str : string? = “hello” var s : string = str! !为强制解析, 需要做一个分支以避免运行时错误
  5. 可选绑定 var str : string!= “hello” 则表示可以直接用,不需要用! 强制解析,但是还是会导致运行时错误

  1. 类型别名 typealias newInt = Int
  2. String一个结构体,因此是值类型
  3. swift 赋值表达式 没有值,所以不支持连续赋值
  4. '??' nil 合并运算符 a??b 如果a为nil 则返回b

集合

  1. var myArr : Array《String》
    var names : [String]
    var nums : [Int]
  2. 集合 Set
  3. 字典 Dictionary

函数

  1. func 函数名(形参列表) [-> 返回值类型] {
    }
  2. 外部形参名:用于表示传入参数的意义
    函数一个参数外,其他的形参都分配隐式外部形参名,认和内部形参名一致
    外部形参名 内部形参名 : 形参类型
    如果要省略,则使用 ‘_’ 即可
  3. 个数可变的形参: 外部形参名 内部形参名 : 形参类型…
    inout 内部新参名 : 形参类型, 表示值可被更改
  4. 函数类型
    (Int,String)-> String,表示形参为 Int,String,返回值为 String
    有了函数类型,就可以直接把函数赋值给对应函数类型的指针, 命令模式也是依此特性来的
  5. 函数重载, 同名函数 形参列表和返回值类型不同

闭包

  1. {(形参列表) -> 返回值类型 in
    可执行语句
    }
  2. 作为函数参数传入的闭包可脱离函数独立使用,这种现象较 escape
    如 func collectFn (@noescape fn : (Int) -> Int) { }
    这种情况下闭包只能在函数内部使用
  3. 闭包是引用类型
  4. 自动闭包 @autoclosure 暂时不大了解用法,记着有这么个概念

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐