swift的语法确实蛮奇怪,很多地方看的还是一知半解。
今天只看了4页,目前看到23页了,学了类,结构,枚举,接口等等。
学习笔记:
1 newValue //默认参数newValue,表示新赋给的值
例如:
var sideLength : Double = 0.0
var perimeter : Double {
get {
return 3.0 * sideLength
}
set {
sideLength = newValue / 3.0
}
}
2 类中的函数和一般的函数有一个重要的区别,一般函数的参数名只在函数内部使用。但是类中的函数参数名需要在调用时显示说明(除了第一个参数)。默认情况下,函数的参数名和它在函数内部的名字一样,不过你也可以定义第二个名字,这个名字被用在函数内部。
例如:
class Counter {
var count : Int = 0
func incrementBy(amount : Int, numberOfTimes times : Int) {
count += amount * times
}
}
var counter = Counter()
counter.incrementBy(2, numberOfTimes : 7)
print(counter.count)
3 处理变量的可选值时,可以在操作之前加'?',如果?之前的值是nil,则?后面的语句会被忽略,并且整个表达式返回nil。否则?之后的语句会被执行。
例如:
var count : Dictionary<String, Int>?
count = ["1" : 1, "2" : 2]
let num = count?.keys
print(num)
4 使用protocol来声明一个接口,类,枚举和结构体都能实现接口。使用mutating关键字来标记一个会修改结构体的方法。
5 使用extension来为现有的类型添加功能,可以使用扩展来给任意类型添加协议,甚至是你从外部或者框架中导入的类型。
例如:
protocol Example {
var simple : String {
get
}
mutating func adjust()
}
class SimpleClass : Example {
var simple : String = "a simple class"
func adjust() {
simple += " adjusted in class"
}
}
extension Int : Example {
var simple : String {
return "int"
}
mutating func adjust() {
self += 100
}
}
let testClass = SimpleClass()
testClass.adjust()
print(testClass.simple)
print(7.simple)
var x : Int = 8
x.adjust()
print(x)
总结:swift还是蛮有趣的,但是内容也够多,后面可以看到的茫茫多的模板,动态,函数式编程,想想都有压力。不过正因为这么多的特性,也说明苹果对这个语言的看重。加油吧。
犹豫了一天,还是在晚上下单了macbook pro。