前天晚上把书全部看完,最后几章有一些相对高级的内容。
笔记如下:
1 计算型和存储型变量。
var variable name: type {
get {
statements
}
set { //非必选
statements
}
}
你可以在全局,函数体内,或者类,结构体,枚举,扩展声明的上下文中使用这种形式的声明。当变量以这种形式在全局或者一个函数内被声明时,它代表一个计算型变量。
getter是必须的,setter是可选的。同时如果你提供了一个setter语句,则必须提供一个getter语句。
注:不像存储属性,计算属性的值不存储在内存(不占用内存)。
结构体内包含零或多个声明。这些声明可以包括存储型和计算型属性,静态属性,静态方法,构造器,类型别名,甚至其他结构体,类,和枚举声明。结构体声明不能包含析构器和协议声明。
结构体可以遵循任意数量的协议,但是不能继承自类,枚举或是其他结构体。
2 表达式模式
表达式模式代表了一个表达式的值。这个模式只出现在switch语句的case标签中。
由表达式模式代表的表达式用swift标准库中的 =操作符与输入表达式的值进行比较。如果=返回true,则匹配成功。默认情况下~=使用==操作符来比较两个相同类型的值。它也匹配一个整数值与一个Range对象中的整数范围。
例如:
let point = (1, 2)
switch point {
case(0, 0):
print("(0, 0")
case(1...3, 1...4):
print("\(point)")
default:
print("not match")
}
func ~=(pattern: String, value: Int) -> Bool {
return pattern == "\(value)"
}
switch point {
case ("0", "0"):
print("(0, 0")
case ("1", "-1...3"):
print("\(point)")
case ("1", _):
print("match")
default:
print("not match")
}
昨天晚上看到一点,把所有的前面的内容又复习了一遍。到目前为止,ios第一阶段的基础学习都已结束。
虽然一些高级的内容还不是很熟悉,还有一些类似java中注解的功能也模棱两可,但这些都不碍事。
接下来,可以正式进入app开发了,教材选用:
http://www.jianshu.com/notebooks/2300305/latest
这个系列的内容吧。继续加油。
总结:
从学习swift开始,到现在大概5周的时间。基本上把swift的最主要的一些特性和功能都掌握了。
总的来说,swift的语法并不是太复杂。但是功能却极强大,许多方面引入了重度的设计,比如构造器,比如弱引用,比如权限控制,比如运算符优先级重载,目前看有点用不上,但它保证了这个语言的完备性,还是挺难得的。
其他方面,很多语法很新颖,比如optional类型,比如expension,比如属性重载。
其他的,好像还没有看到swift关于异常处理,错误码等功能,也许后续会有吧。
个人感觉,如果再给swift一些时间,让它继续完善,发展一下,它也许可以代替c++,java,走的更远。