程序员

swift学习-总览-(12/15)

2016-01-04  本文已影响62人  littlersmall

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。

上一篇下一篇

猜你喜欢

热点阅读