【发布时间】:2019-02-09 11:02:56
【问题描述】:
我正在阅读此blog,但无法理解以下具体化字符串的含义。
Swift 和 Kotlin 都包含了可为空的概念 类型。变量可以包含 null 的事实成为 该变量的类型。 String 类型的变量不能包含 无效的;它只能包含一个具体化的字符串。另一方面,一个 字符串类型的变量?有一个可以为空的类型,并且可以包含一个空值。
该语言的规则坚持认为,当您使用可为空的 变量,您必须首先检查该变量是否为空。所以如果 s 是 细绳?那么 var l = s.length() 将无法编译。相反,你不得不说 var l = s.length() ?: 0 或 var l = if (s!=null) s.length() else 0.
【问题讨论】:
-
doh!,我认为是与泛型相关的东西,谢谢
-
@StatelessDev 一个具体的字符串值,而不是 literal。这真的是完全不同的东西。