我有这段代码,不知在这里使用as!
是否安全。在case类型为cast的switch语句中显式强制类型转换是否安全?
switch value {
case is [String]:
setCustomAttributeArrayWithKey(key, array: value as! [String])
default:
...
}
我有这段代码,不知在这里使用as!
是否安全。在case类型为cast的switch语句中显式强制类型转换是否安全?
switch value {
case is [String]:
setCustomAttributeArrayWithKey(key, array: value as! [String])
default:
...
}
它是安全的你的具体情况,但容易出错:如果您 什么重用代码和更改[String]
只出现一次,但是忘记改变其他发生?一般而言,应尽可能避免使用强制转换 和as!
。
它是可能在这里,使用模式绑定:
switch value {
case let stringArray as [String]:
setCustomAttributeArrayWithKey(key, array: stringArray)
default:
...
}
确实在不易出错的方式一样: [String]
类型的无重复,无强制投与as!
。
是的,它的安全性,因为交换绑定已经确定它是一个非可选的String数组并且具有有效值。这假定值可以在运行时是任何类型的。