Swift学习心得
Swift一出,高级工程师也变菜鸟。干这行的,不保持学习的心态,就会被时代淘汰。
花了几天时间把《The Swift programming language》粗略看了一遍,了解下语法。发现这们语言真是集大成者,很多主流语言的特性都被吸收了。看这本语法书,总会有一种似曾相识的感觉,让我想起了Python, Go, ObjC, C++, C#等各门语言。
相比于ObjC,它显得非常简洁。ObjC变量名、方法名都很长。而Swift在保证可读性的前提下,做了很多工作来确保简洁性:类型推测,函数式编程,泛型等等。在安全性上也做了很多工作:Optional types的引入,继承自ObjC的ARC。苹果宣称它很快,比ObjC快很多,比起脚本语言就更不用说了。这样看来,它会是一门对开发者用户友好的语言,至少比ObjC好。
下面是一些读书笔记。
数据类型
常量和变量
数据类型:
值类型和引用类型
Int, Float, Double, Bool, String, Tuple, Optionals。
Optionals是一个重点,它表示变量在某些时刻可能是nil。是类型安全方面的重要措施。?和!这两个符号含义丰富。
1, var string1 : String?
2, var string2 : String!
3, print(string1!)
4, print(string2)
Array, Dicionary: 与NSArray和NSDictionary不同,他们只能是同一种类型变量的集合。
enum, structure, class
类型转换: is, as, as?
Control Flow
for loops: ..和...的含义
switch/case非常强大,它不局限于整型,还可以做range matching和value binding,支持where子句
labeled statement
函数
default value, external parameter name(#), Variadic parameters, function type, In-Out Parameters
函数可以作为参数和返回类型。
函数可以嵌套定义。
closure
{ (parameters) -> return type in
statements
}
Inferring Type From Context, Shorthand Argument Names
Property
Stored property, computed property
property observer: willSet, didSet
Estensions and protocols, delegations
这些概念跟ObjC基本一致。
泛型和操作符重载,自定义操作符
借鉴自C++。