Java null vs Swift nil
我来自我们使用NULL
的Java / Android背景。 现在我正在做Swift / iOS,而且我对Swift的nil
感到困惑。
我可以在Java中像NULL一样使用它吗? 它是以完全相同的方式行事,还是在使用方面有所不同?
你可以认为'null'和'nil'是一样的。 语言是否包含可选项是一个单独的问题。
目标C,没有,但没有内置的选项,而斯威夫特呢。 同样的,Java有'null',但没有隐含的可选项,而像Kotlin,Scala和Ceylon这样的几种JVM语言,在Swift之前是这样做的。
这里有一篇文章比较Kotlin,Scala和Swift中的null,nil和optionals: http : //codemonkeyism.com/comparing-optionals-and-null-in-swift-scala-ceylon-and-kotlin/
顺便提一下,对于Android开发,您可以调查Kotlin和Jetbrains的相关Anko库。 如果你真的喜欢它,你甚至可以继续在iOS上使用RoboVM 。
Swift目前不支持null合并运算符。
迅速无解释
nil
表示“没有价值”。 非可选变量即使是类也不能被指定nil
,所以它不显示为null
指针,也不是类似的。
我可以推荐你在Swift中阅读更多关于optionals的内容。
信息披露:我不太了解Java,所以我的答案是来自C ++ / Objective-C / Swift的角度。
NSHipster的 Matt Thompson有一篇很好的文章,以及它与Objective-C和C的关系。你可以在这里找到它。
答案基本归结为:你应该考虑它是一样的。
-
0
是你如何代表一个原始值 -
NULL
是你如何代表C指针的文字 -
nil
是你如何代表字面Objective-C / Swift对象