假设值类型为Dictionary
的混合Any
,将数组作为其中一个值:
let myArray = ["A", "B", "C"]
var myDictionary:Dictionary<String, Any> = [
"Array":myArray,
"String":"A String"
]
获取String "B"
:
var downcastToArray:String[] = myDictionary["Array"] as String[]
downcastToArray[1] // Got the "B". Great
这可以在不首先分配var
的情况下完成吗?
myDictionary["Array"] as String[] // I got the String[], now what?
myDictionary["Array"] as String[] [1] // Any way to get the [1] value ?
myDictionary["Array"]?[1] // Nop
myDictionary["Array"]![1] // Na..
myDictionary["Array"]![1] as String // No go..
让我来到这里,只提一下我有超过20行类似的头脑风暴&#39;。或者我应该以不同的方式对待dictionary
Any
? (任何?任何!.. arrrr ..任何*%#$!^)?
答案 0 :(得分:1)
如果你真的想要它在一行:
(myDictionary["Array"] as [String])[1]
但是,请确保您对正确的类型非常有信心,因为它会抛出运行时错误,如果不是,则会暂停整个程序。