首页 > 代码库 > SWIFT学习笔记04

SWIFT学习笔记04

1、在实际编译时,Swift 编译器会优化字符串的使用,使实际的复制只发生在绝对必要的情况下,这意味着您将字符串作为值类型的同时可以获得极高的性能。

2、for character in "Dog!" {
    println(character)
} // D // o // g // ! 

3、通过标明一个Character类型注解并通过字符字面量进行赋值,可以建立一个独立的字符常量或变量:
let yenSign: Character = "¥"

4、计算字符数量
let unusualMenagerie = "Koala , Snail , Penguin , Dromedary "
println("unusualMenagerie has \(countElements(unusualMenagerie)) characters") // 打印输出:"unusualMenagerie has 36 characters

5、前缀/后缀
是否有前缀:scene.hasSuffix("Capulet's mansion")
是否有后缀:scene.hasSuffix("Friar Lawrence's cell")

6、数组操作
根据索引新增元素:shoppingList.insert("Maple Syrup", atIndex: 1)
对应删除:let mapleSyrup = shoppingList.removeAtIndex(1)
移除最后一项:let apples = shoppingList.removeLast()

7、利用全局函数enumerate遍历,可获得下标
for (index, value) in enumerate(shoppingList) {
    println("Item \(index + 1): \(value)")
}

8、初始化指定大小数组的方式:
var threeDoubles = Double[](count: 3, repeatedValue:0.0) // threeDoubles 是一种 Double[]数组, 等于 [0.0, 0.0, 0.0]
var anotherThreeDoubles = Array(count: 3, repeatedValue: 2.5) // anotherThreeDoubles is inferred as Double[], and equals [2.5, 2.5, 2.5]

9、字典update返回String?
if let oldValue = http://www.mamicode.com/airports.updateValue("Dublin Internation", forKey: "DUB")>
10、字典元素移除,同removeValueForKey
airports["APL"] = nil // APL现在被移除了

11、字典的键转为数组,不能没有Array
let airportCodes = Array(airports.keys)

12、在后台,Swift 的数组和字典都是由泛型集合来实现的,想了解更多泛型和集合信息请参见泛型。

13、不可变字典的内容在被首次设定之后不能更改。不可变行对数组来说有一点不同,当然我们不能试着改变任何不可变数组的大小,但是我们·可以重新设定相对现存索引所对应的值。在我们不需要改变数组大小的时候创建不可变数组是很好的习惯。如此 Swift 编译器可以优化我们创建的集合。

2014年07月02日