在快速语言中为null/nil

Meh*_*mar 68 ios swift

我们如何在swift编程语言中定义以下内容:

  • 空值
  • [NSNull null]

换句话说,这些客观c术语中的每一个都是迅速等同的.此外,还想知道是否存在非结构c类型(如结构和枚举)的特定用例.提前致谢.

gwc*_*fey 120

关于等价物:

  • NULL 在Swift中没有相同的东西.
  • nilnil在Swift中也被称为
  • Nil 在Swift中没有相同的东西
  • [NSNull null] 可以在Swift中作为NSNull()访问

注意:这些是基于阅读和游戏的猜测.更正欢迎.

但是Swift中的nil/NULL处理与Objective C非常不同.它看起来旨在强制执行安全和护理.阅读手册中的选项.一般来说,一个变量根本不能为NULL,当你需要表示"缺少值"时,你会以声明的方式这样做.

  • Obj-C中的NULL表示"与plain-C一起使用的零指针".由于Swift与C库兼容,@ Rien的答案是我所知道的"NULL"等效的最佳答案. (2认同)

Rie*_*ien 21

如果需要在低级指针操作中使用NULL,请使用以下命令:

UnsafePointer<Int8>.null()
Run Code Online (Sandbox Code Playgroud)


Tom*_*mmy 12

nil意味着"没有价值",但与Objective-C的其他意义完全不同nil.

它只能分配给可选变量.它适用于文字和结构(即它适用于基于堆栈的项目,而不仅仅是基于堆的项目).

nil即使它们是类(即它们存在于堆中),也不能分配非可选变量.

所以它显然不是一个NULL指针而且与一个指针不相似.它共享名称,因为它旨在用于相同的语义原因.


Cha*_*iya 6

Swift的nilnilObjective-C中的不一样。
在Objective-C中,nil是指向不存在对象的指针。在Swift中,nil它不是指针,而是缺少某种类型的值。可以将任何类型的Optionals设置为nil,而不仅仅是对象类型。

NULL 在Swift中没有等效功能。

nil 在Swift中也称为nil

Nil 在Swift中没有等效功能

[NSNull null] 可以在Swift中以 NSNull()


Cip*_*ian 5

Swull中Null的概念恢复为Optional枚举.枚举是这样定义的

enum Optional<T> {
  case Some(T)
  case None
}
Run Code Online (Sandbox Code Playgroud)

这意味着你不能在Swift中拥有一个未初始化的变量/常量.如果你试图这样做,你会得到一个编译错误,说变量/常量不能是未初始化的.您需要将它包装在Optional枚举中.

这是您在Swift中找到的唯一Null概念