为什么Kotlin打印声明不需要范围说明?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么Kotlin打印声明不需要范围说明?相关的知识,希望对你有一定的参考价值。

这可能是一个愚蠢的问题,但我对Kotlin来说是全新的。

在Java中,典型的print语句是:

System.out.println("Goodbye cruel world!");

但是,在Kotlin,我们可以写:

println("Kotlin is weird but good")

Kotlin如何解决范围澄清问题?它不像println是Kotlin的语言结构(或者是它?)。我错过了一些明显的东西吗?在这里发生了某种隐含的重要声明吗?

请注意,println只是一个例子; Kotlin还有许多其他类似的例子。

答案

Kotlin支持top level functionsprintln简单地宣布为一个,你可以看到它的来源here

如果它们所在的包是导入的,那么这些可以在没有任何限定符的情况下使用,并且基本的Kotlin包是imported by default

另一答案

默认情况下,每个Kotlin文件中都会导入许多包。有关这些包的列表,请参阅参考手册中的Default Imports

其中之一是kotlin.io.*,其中包含println功能。请注意,*会导入所有可访问的内容。 public是顶级元素的默认visibility modifier,包含在该导入中。

您可以通过使用Kotlin REPL并输入以下内容来证实这一点:

>>> kotlin.io.println("Hello")

或者将它放在.kts文件中并使用kotlinc -script filename执行它。

也可以以类似的方式使用默认导入列表中的其他函数,类等。

以上是关于为什么Kotlin打印声明不需要范围说明?的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin 在片段中找不到按钮 ID,为啥?

Kotlin Android Studio - setContenView - 绑定(片段)

如何更改片段 Kotlin

将接口从片段传递到kotlin中的活动

如何在 Kotlin 片段内的按钮之间切换片段?

使用 Kotlin 更改片段中的按钮背景