String和NSString Array 和NSArray Dictionary和NSDictionary
String和CFString一样,他是一个Struct! 不过,苹果非常漂亮的给我们提供了便利的解决方案。String可以和NSString互相替代,而且API通用。
虽说Array和String相仿,是一个枚举,NSArray是一个Class,但Array的API与NSArray不能通用,不过可以像C#那样通过as 语法显示转换。
1Swift的Collection可以放入任何东西,即不只是Object,我还可以放入int\double这些类型。而NS系列必须是NSObject的子类
2Swift的Collection是Typed Collection,也就是我们上面说过的类型推断。
var a = ["a","n",2] as [Any]
a += [1]
a[1...2] = [34] //注意这里的索引要小于数组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
一句话形容它:是一个Value类型的不能继承的Class。
不过注意两点:
1. 虽说不能继承,但是可以实现接口!
2. 虽说和class功能一样,但是他所有method是只读权限,和cpp的const一样..如果想要在其中修改struct的member,就要在前面加上 mutating