Hello, World!
“Hello, world!”是一个常用的程序,用于演示编程语言的基本语法。
我们将分几个步骤来开发这个程序,以便您了解它的组成部分。
首先,让我们来看一个什么也不做的空程序:
// HelloWorld/EmptyProgram.kt
fun main() {
// 程序代码在这里...
}
这个示例以一个注释开始,注释是Kotlin忽略的说明性文本。//
(两个正斜杠)表示从注释开始一直到当前行的结尾:
// 单行注释
Kotlin会忽略//
和之后的所有内容,直到行尾。在下一行,Kotlin会重新开始解析代码。
本书中每个示例的第一行都是一个注释,以源代码文件所在的子目录名称开头(在这里是HelloWorld
),后面跟着文件的名称:EmptyProgram.kt
。每个小节的示例子目录与该小节的名称相对应。
关键字是语言保留的特殊单词,具有特定的含义。关键字fun
是函数的缩写。函数是一组可以使用该函数名称执行的代码(我们在整本书中都会详细介绍函数)。函数的名称跟在fun
关键字后面,所以在这个例子中是main()
(在散文中,我们会在函数名称后面加上括号)。
main()
实际上是一个函数的特殊名称,它表示Kotlin程序的“入口点”。Kotlin程序可以有许多具有不同名称的函数,但是在执行程序时,main()
函数会自动被调用。
参数列表跟在函数名称后面,并由括号括起来。在这里,我们没有将任何内容传递给main()
,所以参数列表是空的。
函数体位于参数列表之后。它以左大括号({
)开始,以右大括号(}
)结束。函数体包含语句和表达式。语句产生一个效果,而表达式则产生一个结果。
EmptyProgram.kt
在函数体中没有任何语句或表达式,只有一个注释。
让我们通过在main()
的函数体中添加一行代码来显示“Hello, world!”:
// HelloWorld/HelloWorld.kt
fun main() {
println("Hello, world!")
}
/* Output:
Hello, world!
*/
显示问候语的代码行以println()
开头。与main()
类似,println()
是一个函数。这行代码调用了该函数,从而执行函数体。你需要给出函数名称,后面跟着括号,括号中包含一个或多个参数。在本书中,当在文中提到函数时,我们在名称后面加上括号,以提醒读者它是一个函数。在这里,我们写作println()
。
println()
接受一个参数,该参数是一个String
(字符串)。你可以通过将字符放在引号内来定义一个String
。
在显示参数后,println()
将光标移到新的一行,因此后续的输出将出现在下一行。你也可以使用print()
,它将光标保留在同一行。
与某些语言不同,你在Kotlin中不需要在表达式的末尾加上分号。只有在一行上放置多个表达式时才需要分号(这种做法是不鼓励的)。
在本书的一些示例中,我们在列表结束时显示输出结果,放在一个多行注释内。多行注释以/*
(斜杠后跟星号)开头,并继续——包括换行符(我们称之为换行符)——直到*/
(星号后跟斜杠)结束注释:
/* 这是一个多行注释
不关心
换行符 */
可以在注释的结束标记*/
之后的同一行上添加代码,但这样会导致混淆,所以人们通常不这样做。
注释提供了从代码中无法直接得出的信息。如果注释只是重复代码的含义,它们会变得很烦人,人们会开始忽略它们。当代码发生变化时,程序员经常忘记更新注释,因此明智地使用注释是一种好的实践,主要用于突出你的代码中棘手的方面。
练习和解答可在 www.AtomicKotlin.com 上找到。