as!,init 是什么意思?在 swift?

What's the meaning of as!,init? in swift?

有时当我使用 "as" 时,xcode 提示失败并建议更改为 "as!"。我还看到一些构造函数是 "init?"。我知道一些变量可能是difined as optional.What 构造函数的含义是可选的?

我查看了"the swift programming language"中的问题,但没有得到答案。

你的as!-问题请看here。作为!强制解开你的可选。

关于您的初始化?-问题:这称为可失败初始化程序。基本上这意味着你的 init-method 可能会失败并且它将 return nil。请参阅 Swift Blog 以供参考。

使用

as

当您认为某个 class 类型的常量或变量实际上可能引用子class 的实例时。

使用

as?

将始终 return 一个可选值,如果无法进行向下转换,它将 return 为 nil。

使用

as!

是强制展开值。当您确定可选值有值时使用 "as!"。

init? 

用于编写可失败的初始化程序。在某些初始化可能失败的特殊情况下,您可以为 class 或结构编写可失败的初始化程序。

如果您的对象只有在满足某些条件时才能创建,那么初始化?有道理,因为它可以 return 一个对象或 nil。至于至于!你应该只在你绝对确定对象是那种类型的情况下使用它,否则使用这个范例: if let object = obj as? String { ... }.