Swift 中的类型转换可以将一个类型的实例转换为另一个类型的实例。类型转换在 Swift 中使用 "is" 和 "as" 操作符实现。\n\n1. "is" 操作符用于检查一个实例是否属于某个类的实例或者是其子类的实例。它返回一个布尔值,如果实例属于指定的类型或者其子类类型,则返回 true;否则返回 false。\n\nswift\nclass Animal {}\nclass Dog: Animal {}\n\nlet animal = Animal()\nlet dog = Dog()\n\nprint(animal is Animal) // true\nprint(dog is Animal) // true\nprint(animal is Dog) // false\nprint(dog is Dog) // true\n\n\n2. "as" 操作符用于将一个实例转换为指定类型。如果转换成功,则返回转换后的实例;如果转换失败,则会触发运行时错误。"as?" 操作符用于将一个实例转换为可选类型,如果转换成功则返回可选类型的值,如果转换失败则返回 nil。\n\nswift\nclass Animal {}\nclass Dog: Animal {}\n\nlet animal = Animal()\nlet dog = Dog()\n\nlet animal2 = dog as Animal // 向上转型,返回 Animal 类型的实例\nlet dog2 = animal as? Dog // 向下转型,返回可选类型的 Dog 类型的实例\n\nprint(animal2) // Animal()\nprint(dog2) // nil\n\n\n3. "as!" 操作符用于将一个实例强制转换为指定类型。如果转换成功,则返回转换后的实例;如果转换失败,则会触发运行时错误。\n\nswift\nclass Animal {}\nclass Dog: Animal {}\n\nlet animal = Animal()\nlet dog = Dog()\n\nlet animal2 = dog as! Animal // 向上转型,返回 Animal 类型的实例\nlet dog2 = animal as! Dog // 向下转型,返回 Dog 类型的实例\n\nprint(animal2) // Animal()\nprint(dog2) // Dog()\n\n\n注意:在进行类型转换之前,需要确保被转换的实例的类型是可以转换的,否则会导致运行时错误。

Swift 类型转换详解:is、as 和 as! 操作符 - 详细指南

原文地址: https://www.cveoy.top/t/topic/pZtA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录