在 Swift 中,類型轉換是指將一種類型的實例轉換為另一種類型的操作。Swift 提供了三種類型轉換操作:as?、as! 和 is。
as? 和 as!
- as?:可選類型轉換。如果轉換成功,返回一個可選類型,值為轉換后的類型;如果轉換失敗,返回
nil
。 - as!:強制類型轉換。如果轉換成功,返回轉換后的類型;如果轉換失敗(例如類型不匹配),會觸發運行時錯誤。
示例:
class Animal {}
class Dog: Animal {}let animal = Dog()
let dog1 = animal as? Dog // 使用as?,轉換成功,dog1為Dog類型的可選值
let dog2 = animal as! Dog // 使用as!,轉換成功,dog2為Dog類型
let cat = animal as? String // 使用as?,轉換失敗,cat為nil
let bird = animal as! String // 使用as!,轉換失敗,觸發運行時錯誤
is
is 用于檢查實例是否屬于某種類型。如果實例屬于指定類型,返回 true
;否則返回 false
。
示例:
let someAnimal: Animal = Dog()
if someAnimal is Dog {print("someAnimal is a dog")
} else {print("someAnimal is not a dog")
}
類型轉換是 Swift 中用于將實例從一種類型轉換為另一種類型的重要操作。通過使用 as?、as! 和 is,我們可以在需要時安全地進行類型轉換或者檢查實例的類型,避免因為類型不匹配而導致的運行時錯誤。