对任何元素类型进行快速转换是否是一种好习惯?
例如
let arrayObject = [Any]
或
let arrayObject = [[String: String]]
答案 0 :(得分:1)
Swift的强类型系统鼓励您始终尽可能特定于类型。请不要将Any
用作无关类型。
我建议考虑此优先级列表(从高到低)
String
,请始终使用[String:String]
而不是[String:Any]
。Any
答案 1 :(得分:0)
当您知道Array元素的类型时,可以避免使用Any
并使用直接数据类型。
例如:如果您持有String
的数组,则可以直接定义String
类型,如下所示。
var arrayObject = [String]()
如果要持有数组中未知类型的对象或数组中具有多种类型的对象,则可以使用Any
。
例如:如果将String
和NSNumber
放在同一数组中,则可以将Any
定义为数组元素的类型,如下所示。
var arrayObject = [Any]()
arrayObject.append("Hundred")
arrayObject.append(NSNumber(value: 100))
let str = arrayObject[0] as! String
let number = arrayObject[1] as! NSNumber