当前位置: 首页 > 面试题库 >

为什么要使用双冒号(::)在Kotlin上课?

牧业
2023-03-14
问题内容

我们知道,双冒号(::)用于科特林,如获得功能(可赎回)的参考String::compareTo"string"::compareTo

在Java中,我们使用SomeClass.classsomeInstance.getClass()获取类。为什么在科特林我们使用SomeClass::classsomeInstance::class,而class不是一个函数/方法?

println(String::compareTo)
// output: fun kotlin.String.compareTo(kotlin.String): kotlin.Int
println("string".compareTo("strong"))
// output: -6
println(String::class)
// output: class kotlin.String
println("string".class)
// compile error

问题答案:

::在Kotlin中,有关元编程的内容包括方法引用,属性引用和类文字。请参阅有关类文字的讨论。



 类似资料:
  • 问题内容: CSS 中的双冒号()是什么意思? 例如: 问题答案: 这意味着 伪元素 选择器。这意味着右边的 元素 在普通DOM中不存在,但是可以选择。 伪元素由两个冒号(::)组成,后跟伪元素的名称。 它最初只有一个冒号,而是改为从区分其 伪类 (如,,等)。最好使用for 和伪元素,因为单个冒号具有更好的浏览器支持,即在较早的IE版本中。

  • 问题内容: 我有这样的字符串 我想用冒号作为分隔符,而不是双冒号。所需结果: 我正在尝试: 但我得到了错误的结果。 在此期间,我逃避,用 问题答案: 您可以继续讨论。这使用两个否定的环视(回溯和回溯),它们断言有效匹配只有一个冒号,在它之前或之后没有冒号。 解释模式: 这两种环视都是必需的,因为如果只有后向,则正则表达式引擎将匹配其中的第一个冒号(因为前一个字符不是冒号),如果只有前瞻,则第二个冒

  • 问题内容: 我在网上研究过immutablejs的好处,但是没有发现任何令人满意的东西! 我的问题是,当我可以冻结一个普通的旧javascript对象时,为什么我应该使用该库并使用非本机数据结构? 问题答案: 我认为您不了解immutablejs提供的功能。这不是一个使您的对象变得不可变的库,而是一个使用不可变值的库。 在不简单重复他们的文档和任务说明的情况下,我将说明它提供的两件事: 类型。他们

  • 我理解单引号和双引号的用法。 但是我不知道剧本中需要双引号。 这种说法没有区别 请告诉我普通引号和双引号之间的区别。

  • 我最近阅读了一些使用将变量转换为布尔值以在if语句中进行评估的代码。这对我来说似乎有些多余,因为无论如何都会评估变量的布尔值。这样做有什么性能优势吗?还是为了更好地支持浏览器? 示例代码: 编辑: 我也在非布尔类型的操作数中看到了这一点,但我一直假设使用无论如何都会评估变量的布尔值,因为Javascript中的所有值都是“真实的”或“Falsey”。 示例代码:

  • 问题内容: 由于IE7和IE8不支持对伪元素(例如或)使用双冒号表示法,并且由于现代浏览器支持向后兼容的单冒号(例如),我应该仅使用单冒号表示法以及何时使用IE8的市场份额下降到可以忽略的水平,然后回去查找/替换我的代码库?还是我都应该同时包括: 如果我关心IE8用户(可怜的朋友),单独使用double似乎很愚蠢。 问题答案: 请勿 同时 使用逗号和逗号。兼容CSS 2.1(不支持CSS3)的用户