在Swift中,我可以使用as?
将类型向下转换为另一种类型。如果转换失败,则返回nil
。
如果我使用as!
并且转换失败则会引发错误。
为什么我们有as?
和as!
?为什么不只是as
喜欢C#和其他语言。如果转换失败只返回null,那就是它!
答案 0 :(得分:1)
为方便起见。
需要as?
运算符才能提供可以正常失败的向下转发。 as!
运算符是写(value as? Type)!
之类的简短形式。
如果您只有as!
,则可以不使用as?
,但as!
比我输入的代码更方便。 Prior to Swift 1.2,as!
为as
,这导致与as
的另一种使用混淆。迁移到as!
使其使用清晰,并且符合?而且!用于期权。
在Swift中,你不能只返回null并且它是"因为值默认情况下不支持nil或null值。您需要使用选项来明确指出缺少值的可能性,这是一种旨在提高安全性的语言选择。通过可选的返回,您需要在某个时刻提取值以使用它,因此需要as!
或者!当你确定堕落者会成功时。