我对Swift教程感到有点困惑.
是否nil只是一个方便快捷Optional<T>.None?
是否存在从一个到另一个的隐式转换?
几点意见:
Optional<String>.None == nilnil 字面似乎有一个 NilType如果这是一个隐式转换,我可以定义自己的"接受"nil的类型,或者在Optional某种程度上是特殊的吗?我不认为定义自定义convertible-to-nil类型是个好主意 - 我只是想了解类型系统在这种情况下的工作原理.
如果在声明可选变量或属性时未提供初始值,则其值自动默认为nil.
两者都有相同的价值nil.
实际上Optional<T>.None是一个多态原始值,并且nil是具有此值的常量.Optional<T>是一种多态类型.类型nil是Optional<T>.这就是为什么nil除了一个之外你不能分配给别的东西Optional<T>.出于同样的原因true,除了a之外你不能分配任何东西Bool.
目前,根据文档,您不能使用nil任何自定义和任意类型的选项.
nil不能与非可选常量和变量一起使用.如果代码中的常量或变量需要能够在某些条件下处理缺少值,请始终将其声明为相应类型的可选值.
| 归档时间: |
|
| 查看次数: |
2009 次 |
| 最近记录: |