String和NSString? Array 和NSArray Dictionary和NSDictionary
String和CFString一樣滚秩,他是一個(gè)Struct! 不過(guò)肩祥,蘋(píng)果非常漂亮的給我們提供了便利的解決方案。String可以和NSString互相替代缩膝,而且API通用混狠。
雖說(shuō)Array和String相仿,是一個(gè)枚舉疾层,NSArray是一個(gè)Class将饺,但Array的API與NSArray不能通用,不過(guò)可以像C#那樣通過(guò)as 語(yǔ)法顯示轉(zhuǎn)換痛黎。
1Swift的Collection可以放入任何東西予弧,即不只是Object,我還可以放入int\double這些類(lèi)型湖饱。而NS系列必須是NSObject的子類(lèi)
2Swift的Collection是Typed Collection掖蛤,也就是我們上面說(shuō)過(guò)的類(lèi)型推斷。
var? a = ["a","n",2] as [Any]
a += [1]
a[1...2] = [34] //注意這里的索引要小于數(shù)組count
print(a)
//下面是Dictionary 用法
var? animalLegs = ["pig":4,"dog":4,"snake":0];
for (animalName,Legs) in? animalLegs{
print(animalName)
}
animalLegs["chihuahua"] = 5
animalLegs["chihuahua"] = 4
var? possibleValue:Int? = animalLegs["chihuahua"]
if let value = possibleValue {
print("\(value)")
}
Struct
一句話形容它:是一個(gè)Value類(lèi)型的不能繼承的Class井厌。
不過(guò)注意兩點(diǎn):
1. 雖說(shuō)不能繼承蚓庭,但是可以實(shí)現(xiàn)接口!
2. 雖說(shuō)和class功能一樣旗笔,但是他所有method是只讀權(quán)限彪置,和cpp的const一樣..如果想要在其中修改struct的member,就要在前面加上 mutating