【问题标题】:what is a reified String, instead of a null什么是具体化字符串,而不是 null
【发布时间】: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。这真的是完全不同的东西。

标签: swift kotlin


【解决方案1】:

reified 表示“使(抽象的)更具体或真实”。这里 reified 字符串表示如果字符串为空,则该字符串输出包含 0 或任何其他值。

【讨论】:

  • 感谢您的贡献,如果您在编译时将其与 reified 泛型进行比较,并将 reified 的概念扩展到可空性,我将接受您的回复并最终支持您,因为 stateless dev 已经在发表评论,我给了他反馈
猜你喜欢
  • 2012-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-16
  • 2013-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多