我正在研究Swift,并且对以下语法感到困惑:
var treasures: [Treasure] = []
Run Code Online (Sandbox Code Playgroud)
宝藏是自定义类,声明如下:
class Treasure: NSObject {
...
Run Code Online (Sandbox Code Playgroud)
在Obj-C中,方括号表示方法,但这意味着什么:
var treasures: [Treasure] = []
Run Code Online (Sandbox Code Playgroud)
有人可以提供解释吗?谢谢!
Luc*_*tti 15
好的,这是意思
var treasures: [Treasure] = []
Run Code Online (Sandbox Code Playgroud)
例如,如果您希望Array包含2个元素,您可以编写
var treasures: [Treasure] = [Treasure(), Treasure()]
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
更新: 我的例子也可以这样写
var treasures = [Treasure(), Treasure()]
Run Code Online (Sandbox Code Playgroud)
事实上,由于类型推断,编译器可以推断出看到指定值类型的变量宝藏的类型.
sie*_*ski 14
[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"]]
Run Code Online (Sandbox Code Playgroud)
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"]
Run Code Online (Sandbox Code Playgroud)
由于[并]没有在运营商定制允许的,这是唯一的用途现在.
| 归档时间: |
|
| 查看次数: |
8278 次 |
| 最近记录: |