ここに2つの質問があるようです。
subscripting1.自分のカスタム クラスを有効にするにはどうすればよいですか?
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"