[Treasure]
ist nur eine Syntax Zucker für Array<Treasure>
.
Der gleiche Weg [String:Treasure]
ist nur eine Syntax Zucker für Dictionary<String,Treasure>
.
[]
ist nur ein leeres Array des von Ihnen definierten Typs. Genauso ist [:]
ein leeres Wörterbuch.
Wenn es um schnelle und eckige Klammern geht, sind die Regeln einfach. Sie werden nur in zwei Situationen verwendet:
1) Arbeit mit Array und Wörterbuch Typen:
let vectors : [[Int]] = [[1,2,3],[4,5,6]]
let birthBook : [Int:[String]] = [1987:["John","William"], 1990: ["Mary"]]
2) für Subskribierung Objekte, die Indizierung zu unterstützen:
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"]
Seit [
und ]
sind in benutzerdefinierten Operatoren nicht erlaubt, dies sind die einzigen Verwendungen für jetzt.
Dies ist ein Array. die Linie var treasures: [Treasure] = [] deklariert ein Array namens Schätze, das Objekte der Treasure-Klasse aufnehmen soll und initialisiert es mit einem leeren Array –