是什么目的?在斯威夫特?

时间:2015-08-18 17:44:04

标签: ios swift

在Swift中,我可以使用as?将类型向下转换为另一种类型。如果转换失败,则返回nil

如果我使用as!并且转换失败则会引发错误。

为什么我们有as?as!?为什么不只是as喜欢C#和其他语言。如果转换失败只返回null,那就是它!

1 个答案:

答案 0 :(得分:1)

为方便起见。

需要as?运算符才能提供可以正常失败的向下转发。 as!运算符是写(value as? Type)!之类的简短形式。

如果您只有as!,则可以不使用as?,但as!比我输入的代码更方便。 Prior to Swift 1.2as!as,这导致与as的另一种使用混淆。迁移到as!使其使用清晰,并且符合?而且!用于期权。

在Swift中,你不能只返回null并且它是"因为值默认情况下不支持nil或null值。您需要使用选项来明确指出缺少值的可能性,这是一种旨在提高安全性的语言选择。通过可选的返回,您需要在某个时刻提取值以使用它,因此需要as!或者!当你确定堕落者会成功时。