关键词:Swift, iOS, is, as, as?, , Any, AnyObject
数据类型转换
- SomeType(ofInitialValue)
- 数据类型(待转换的数据)
- 并不能传入任意类型的值,只能传入目标类型内部有对应构造器的值。
- 布尔型不能转成整型或浮点型。
- 不同整型(如UInt8与UInt16)不能直接相加,需要先转换为相同的类型。
UInt16(num1)
Int(numFloat)
String(numBool)
类型转换
概述
使用is
与as
进行类型判断,只能判断是否属于某个类;无法判断是否属于某个父类。
类型判断:is
if things[0] is String {
print("第一个元素是字符串")
}
类型转换:as? 返回的是一个可选值
if let voi = voice1 as? VoiceFileClass {
print("voice1属于类VoiceFileClass")
}
Any与AnyObject
概述
- AnyObject 可以表示任何类类型的实例。
- Any 可以表示任何类型,包括函数类型。
- Any 类型可以表示所有类型的值,包括可选类型。
- 但是直接用as来表示时,会提示警告。
- 使用as将可选值显式转换为Any后,将不再提示警告。
//创建一个可以包含任意类型的空数组
var things = [Any]()
可选值显式转换为Any
var uu: String? = "222"
var yy = uu as Any