我正在研究Swift,并且对以下语法感到困惑:
var treasures: [Treasure] = []
Treasure是自定义类,声明如下:
class Treasure: NSObject {
...
在Obj-C中,方括号表示方法,但这意味着什么:
var treasures: [Treasure] = []
有人可以提供解释吗?谢谢!
答案 0 :(得分:13)
[Treasure]
只是Array<Treasure>
的语法糖。
同样的方式[String:Treasure]
只是Dictionary<String,Treasure>
的语法糖。
[]
只是您定义的类型的空数组。同样的方式[:]
是一个空字典。
说到Swift和方括号,规则很简单。它们仅在两种情况下使用:
1)使用数组和词典类型:
let vectors : [[Int]] = [[1,2,3],[4,5,6]]
let birthBook : [Int:[String]] = [1987:["John","William"], 1990: ["Mary"]]
2)支持下标的下标对象:
class RouteMapper {
private var routeMap : [String:String] = [:]
subscript(endpoint: String) -> String {
get {
if let route = routeMap[endpoint] {
return route
}
return "/"
}
set(newValue) {
routeMap[endpoint] = newValue
}
}
}
let routeMapper = RouteMapper()
routeMapper["users"] = "/v1/confirmed/users"
let url = routeMapper["admins"]
由于自定义运算符中不允许使用[
和]
,因此这些是目前唯一的用法。
答案 1 :(得分:13)
好的,这就是
的含义var treasures: [Treasure] = []
E.g。如果你想让数组保存2个元素,你可以编写
var treasures: [Treasure] = [Treasure(), Treasure()]
希望这有帮助。
<强>更新强> 我的例子也可以这样写出
var treasures = [Treasure(), Treasure()]
事实上,由于 类型推断 ,编译器可以推断变量的类型 宝藏 指定值的类型。