您的位置:首页 > 移动开发 > Swift

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

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

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

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


类型

元祖
的定义 换括号把多个值组合成一个复合值

可选类型
已有类型后跟着? 如 Int? 表示 可接受‘Int‘ 和 ‘值缺失(nil)’ 两种情况

nil
定义为值缺失

?
var str : string? = “hello” var s : string = str! !为强制解析, 需要做一个分支以避免运行时错误

可选绑定
var str : string!= “hello” 则表示可以直接用,不需要用! 强制解析,但是还是会导致运行时错误

类型别名
typealias newInt = Int

String
是一个结构体,因此是值类型

swift 赋值表达式
没有值,所以不支持连续赋值

'??'
nil 合并运算符 a??b 如果a为nil 则返回b

集合

var myArr :
Array
《String》

var names : [String]

var nums : [Int]

集合
Set


字典
Dictionary


函数

func 函数名(形参列表) [-> 返回值类型] {

}

外部形参名
:用于表示传入参数的意义

除函数第一个参数外,其他的形参都分配隐式外部形参名,默认和内部形参名一致

外部形参名 内部形参名 : 形参类型

如果要省略,则使用 ‘_’ 即可

个数可变的形参
: 外部形参名 内部形参名 : 形参类型…

inout 内部新参名 : 形参类型, 表示值可被更改

函数类型


(Int, String)-> String ,表示形参为 Int, String, 返回值为 String

有了函数类型,就可以直接把函数赋值给对应函数类型的指针, 命令模式也是依此特性来的

函数重载
, 同名函数 形参列表和返回值类型不同

闭包

{(形参列表) -> 返回值类型 in

可执行语句

}

作为函数参数传入的闭包可脱离函数独立使用,这种现象较
escape


如 func collectFn (@noescape fn : (Int) -> Int) { }

这种情况下闭包只能在函数内部使用

闭包是
引用类型


自动闭包
@autoclosure 暂时不大了解用法,记着有这么个概念
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  swift