2014年苹果发布新语言Swift。Swift是面向对象用于开发iOS和Mac OS 应用的语言。我最近也在关注这个技术,以下是我学习过程中的某些疑问。以及解决问题的方法。
Swift 定义数组和字典的方式:
数组(很多人会这样做)
var@H_301_22@ shoppingList:String@H_301_22@[] = ["Eggs"@H_301_22@,"Milk"@H_301_22@]
@H_301_22@ 其实现在这个样做是错误的,在新版本Swift里已经改变了方式:
@H_301_22@ var@H_301_22@shoppingList: [String]@H_301_22@= ["Eggs"@H_301_22@,"Milk"@H_301_22@]
@H_301_22@@H_301_22@ 最好的做法是利用Swift类型推断的特性:
@H_301_22@@H_301_22@ var@H_301_22@shoppingList@H_301_22@= ["Eggs"@H_301_22@,"Milk"@H_301_22@]
字典
var airports:[String:String]=["TYO":"Tokyo","DUB":"Dublin"]
var airports=["TYO":"Tokyo","DUB":"Dublin"]
Swift中数组和字典传递的是值还是引用?
真实的做一个例子能让我们明确。
@H_301_22@ var@H_301_22@ a=[1@H_301_22@,2@H_301_22@,3@H_301_22@]
@H_301_22@ var@H_301_22@ b = a
@H_301_22@ var@H_301_22@ c = a
@H_301_22@ a[0@H_301_22@]=42@H_301_22@;
@H_301_22@ println@H_301_22@("@H_301_22@a[0@H_301_22@]:@H_301_22@\(a[0@H_301_22@])"@H_301_22@);
@H_301_22@ println@H_301_22@("@H_301_22@b[0@H_301_22@]:@H_301_22@\(b[0@H_301_22@])"@H_301_22@);
@H_301_22@ println@H_301_22@("c@H_301_22@[0@H_301_22@]:@H_301_22@\(c[0@H_301_22@])"@H_301_22@);
@H_301_22@ 结果输出@H_301_22@a[0@H_301_22@]:42 b[0]:0 c[0]:0
所以网上一些文章写的@H_301_22@@H_301_22@a[0@H_301_22@]:42 b[0]:42 c[0]:42是错误的。