ここに2つの質問があるようです。
subscripting
1.自分のカスタム クラスを有効にするにはどうすればよいですか?
subscripting
クラスで有効にするには、次のように計算されたプロパティContainer
を実装する必要があります。subscript
class Container {
private var list : [Any] = [] // I made this private
subscript(index:Int) -> Any {
get {
return list[index]
}
set(newElm) {
list.insert(newElm, atIndex: index)
}
}
}
これで、このように使用できます。
var container = Container()
container[0] = "Star Trek"
container[1] = "Star Trek TNG"
container[2] = "Star Trek DS9"
container[3] = "Star Trek VOY"
container[1] // "Star Trek TNG"
2. のContainer
ような添字をサポートする要素にアクセスできますdata[1][2]
か?
あなたの例を使用する場合は、できません。data[1]
型の何かを返すためAny
です。また、添え字を付けることはできませんAny
。
しかし、キャストを追加すると可能になります
var container = Container()
container[0] = ["Enterprise", "Defiant", "Voyager"]
(container[0] as! [String])[2] // > "Voyager"