Swift2.0--文档学习笔记

最近把 《The Swift Programming Language 中文版》粗略地看了一遍,并随手留了点笔记,以备忘。

1、闭包,通过闭包对字符串数组进行排序,闭包的函数体部分由关键字in引入

names.sort( { (s1: String,s2: String) -> Bool in return s1 < s2 } )
names.sort( { s1,s2 in return s1 > s2 } )(类型推断,推断参数类型)
names.sort( { s1,s2 in s1 > s2 } )(隐式返回,推断返回什么类型)
names.sort( { $0 > $1 } ) (参数名缩写,参数顺序调用
names.sort(>)(运算符函数,swift自动推断)

2、尾随闭包的使用

let digitNames = [
0: "Zero",1: "One",2: "Two",3: "Three",4: "Four",5: "Five",6: "Six",7: "Seven",8: "Eight",9: "Nine"
]
let numbers = [16,58,510]
let strings = numbers.map {
(var number) -> String in
var output = ""
while number > 0 {
output = digitNames[number % 10]! + output
number /= 10
}
return output
}
println(strings)
输出:[OneSix,FiveEight,FiveOneZero]

3、嵌套函数的捕获值
//传入Int ,返回()->Int
//被传入的Int被潜逃函数捕获,并持有,不断累加。
func makeIncrementor(forIncrement amount: Int) -> () -> Int {
var runningTotal = 0
func incrementor() -> Int {
runningTotal += amount
return runningTotal
}
return incrementor
}

override func viewDidLoad() {
super.viewDidLoad()

let dd = makeIncrementor(forIncrement: 7)
println(dd())   //7
println(dd())   //14

let ee = dd
println(ee())   //21
4、Swift 中字符串(String),数组(Array)和字典(Dictionary)类型均以结构体的形式实现。这意味着String,Array,Dictionary类型数据被赋值给新的常量或变量,或者被传入函数方法中时,它们的值会发生拷贝行为(值传递方式)。 5、延迟存储属性(lazy)来避免复杂类中不必要的初始化。 6、可以通过把方法属性或下标脚本标记为final来防止它们被重写 7、循环引用的解决方式 Person和Apartment的例子展示了两个属性的值都允许为nil,并会潜在的产生循环强引用。这种场景最适合用弱引用来解决。 Customer和CreditCard的例子展示了一个属性的值允许为nil,而另一个属性的值不允许为nil,这也可能会产生循环强引用。这种场景最适合通过无主引用来解决。 两个属性都必须有值,并且初始化完成后永远不会为nil。在这种场景中,需要一个类使用无主属性,而另外一个类使用隐式解析可选属性解决闭包引起的循环强引用,通过定义捕获列表。 8、internal:可以访问自己模块中源文件里的任何实体,但是别人不能访问该模块中源文件里的实体。 9、Swift中的private访问和其他语言中的private访问不太一样,它的范围限于整个源文件,而不是声明。 10、元组的访问级别与元组中访问级别最低的类型一致。 11、子类的访问级别不得高于父类的访问级别。

相关文章

Swift 正式开源!Swift 团队很高兴宣布 Swift 开始开源新篇章。自从苹果发布 Swfit 编程语言,就成为了...
快,快,快!动动您的小手,分享给更多朋友! 苹果去年推出了全新的编程语言Swift,试图让iOS开发更简单...
开发者(KaiFaX) 面向开发者、程序员的专业平台! 和今年年初承诺的一样,苹果贴出了Swift语言的源码,...
本文由@Chun发表于Chun Tips :http://chun.tips/blog/2014/12/11/shi-yong-swift-gou-jian-zi-ding-yi...
本文由CocoaChina译者leon(社区ID)翻译 原文:THE RIGHT WAY TO WRITE A SINGLETON 在之前的帖子里聊过...
本文由CocoaChina译者leon(社区ID)翻译 原文:THE RIGHT WAY TO WRITE A SINGLETON 在之前的帖子里聊过...