as操作符用来把某个实例转型为另外的类型,由于实例转型可能失败,因此Swift为as操作符提供了两种形式:选项形式as?和强制形式as!
选项形式(as?)的操作执行转换并返回期望类型的一个选项值,如果转换成功则返回的选项包含有效值否则选项值为 nil 强制形式(as! )的操作执行一个实例到目的类型的强制转换,因此使用该形式可能触发一个运行时错误。
下面一个例子:
/**
根据下标索引元素
- parameter index: 下标
- returns: 该下标对应的值
*/
func fetchItem(_ index: Int) -> String? {
if index < 0 {
return nil
}
return list[index] as? String //函数返回一个String型。
}