在此 Codelab 中,您将借助一款可在浏览器中运行的交互式编辑器,使用 Kotlin 语言编写您的第一个程序。
您可以将程序[LINK] 视为一系列指示系统执行某项操作的指令。举例而言,您可以编写一个用于制作生日贺卡的程序。在该程序中,您可以编写一条指令,指示系统输出祝福语,或根据寿星的出生年份计算其年龄。
就像您使用人类语言与他人沟通一样,您可以使用编程语言与计算机的操作系统进行沟通。幸运的是,相较于人类语言,编程语言更简单,逻辑相当严密。
Android 应用采用 Kotlin 编程语言编写。Kotlin 是一种现代语言,旨在帮助开发者高效编写代码,并尽可能减少错误。
同时学习如何创建应用和编程基础知识并非易事,因此,我们将先介绍一些编程的入门知识,然后再讲解如何创建应用。先熟悉一些编程基础知识,这不仅是创建应用的重要步骤,还有助于您在本课程中的后面部分,更轻松地创建您的第一款应用。
代码编辑器是帮助您编写代码的工具,这和文字处理器(如 Google 文档)帮助您创建文本文档是一样的。在此 Codelab 中,您将在浏览器中使用交互式 Kotlin 编辑器。这意味着,您不必安装任何软件,即可迈出应用开发的第一步。
前提条件
- 能在网络浏览器中使用交互式网站。
学习内容
- 如何创建、更改、理解和运行用于显示一条消息的最简单的 Kotlin 程序。
构建内容
- 您将使用 Kotlin 编程语言编写一个在运行时将显示一条消息的程序。
所需条件
- 一台安装了新版网络浏览器(如最新版 Chrome)的计算机。
- 计算机可以访问互联网。
在此任务中,您将使用网站上的编辑器,立即上手 Kotlin 语言编程。
使用交互式代码编辑器
您可以不必在计算机上安装软件,而是使用网页版工具来创建您的第一个程序。
- 在浏览器中,打开 https://try.kotlinlang.org/。这将打开一个基于浏览器的编程工具。
- 您应该会看到一个类似于以下屏幕截图所示的页面,左侧显示文件列表,右侧显示编辑器。您还可能会在右下角看到一个包含 Cookie 政策信息的黑框。
警告:如果您不同意本网站的 Cookie 政策,请勿继续。
- 点击黑色弹出式窗口左上角的 X 即可将其关闭。
- 请参考下方带有注解的屏幕截图,了解此编辑器。
- 顶部的 (1) 学习、社区和在线试用标签页。点击在线试用标签页(如果尚未选择)。
- (2) 最左侧窗格中的文件资源管理器。此列表中的每个文件夹都包含一个用于学习 Kotlin 的小型独立示例。
- (3) 右侧窗格中的编辑器 是您编写代码时完成大部分工作的地方。
这款基于 Web 的代码编辑器还有许多其他功能,但以下是您入门时需要了解的功能。
打开示例代码
- 在文件浏览器中,选择 Examples > Hello, world! > 最简单版本 > SimplestVersion.kt(下图中的 1)。
- 在文件名 SimplestVersion.kt 中,请注意 .kt 文件扩展名(请参阅下方屏幕截图中的 1)。就像图片有
.jpg
或.png
扩展名,PDF 有.pdf
扩展名一样,所有 Kotlin 文件都必须有.kt
扩展名。 - 请注意编辑器中的代码(下图中的 2)。部分代码已突出显示。以下是您将要使用的代码。
以下是编辑器中突出显示的程序代码:
fun main(args: Array<String>) {
println("Hello, world!")
}
运行程序代码
运行您创建的程序与在计算机上运行文字处理器等程序没有多大区别。不同之处在于,在您运行程序来处理事务或玩游戏时,您关注的是程序的功能上,而不是实现功能的代码。在编程过程中,您能查看并处理实现这些神奇功能的实际代码。
我们来看看这个程序能做什么!
- 在编辑器的右上角,找到绿色三角形图标
,点击它即可运行程序。
- 如有必要,请在页面上向下滚动,直到看到编辑器底部,以便查看底部的窗格(以下屏幕截图中的 1)。
- 点击控制台标签页。控制台是程序可以向其输出文本的地方。
- 您可以看到,系统在控制台窗格中输出了
Hello, world!
,如上图所示。现在您应该知道这个程序的作用了:它在控制台窗口中输出一条 Hello World 的消息。 - 请注意,打印的
Hello, world!
上方有一条消息Compilation complete successfully
。“编译”是将 Kotlin 程序代码转换为系统可运行的形式的过程。如果编译成功,则表明程序中没有会阻碍其正常运行的错误。
计划的组成部分
现在,您已经了解了此程序的功能,接下来我们首次了解一下该程序是如何实现这些功能的。
- 在编辑器中查看程序。
- 请注意,此代码包含两个不同的部分。
计划的顶部:
/**
* We declare a package-level function main which returns Unit and takes
* an Array of strings as a parameter. Note that semicolons are optional.
*/
在上面的代码段中,您可以看到这些符号内的文字:/*
和 */.
这意味着它是一条注释,即包含面向其他开发者的信息的消息。当您运行程序时,系统会忽略此注释。目前,您也可以忽略此评论!在后续 Codelab 中,您将详细了解注释。
计划的底部:
fun main(args: Array<String>) {
println("Hello, world!")
}
这三行代码是实际运行并输出消息的程序。
更改 Hello World 代码
我们来修改一下该程序,让它执行略微不同的操作。
- 将
"Hello, world!"
文本更改为"Happy Birthday!"
。 - 点击右上角的绿色运行按钮
,运行您的程序。
- 在控制台中,您现在应该会看到输出的
Happy Birthday!
,如下面的屏幕截图所示。
How does it work?
这是怎么做到的?看起来只是输出一些内容就需要使用大量代码!
如果您想让朋友在一张纸上写下“Hello, world!”,则其中可能包含大量隐含信息。如果您只是告诉对方:“在这张纸上写下‘Hello world!’”,他们会对您省略的信息做出各种假设。例如,他们会认为自己需要一支笔,而且您希望他们使用字母来书写!计算机不会做出这些假设,因此您必须给出包含每个步骤的精确指令。
就像英语一样,编程语言也有结构。如果您学习过其他语言,就会知道学习语法、拼写(或许是新的符号字母)和词汇有多么困难。学习编程也面临着类似的挑战,好在它比英语等语言更简单易学,且更有逻辑性。
了解程序的组成部分
现在,我们来看一下代码。程序的每个部分都有特定的用途,而要运行程序,每个部分都不可或缺。我们先从代码中的第一个单词说起。
fun
fun
是 Kotlin 编程语言中的一个单词。fun
代表函数。函数是程序中用于执行特定任务的部分。
fun main
main
是这个函数的名称。函数需要用名称来区分彼此。此函数之所以称为main
,是因为它是您运行程序时调用的第一个函数(即主函数)。每个 Kotlin 程序都需要有一个main
函数。
fun main()
- 函数名称后面总是跟着一对圆括号
()
。
fun main(args: Array<String>)
- 在圆括号内,您可以添加供函数使用的信息。对于函数的该输入称为“参数”,或简称
args
。稍后我们会详细介绍参数。您只需知道main
函数始终具有相同的实参。
fun main(args: Array<String>) {}
- 请注意参数后面的一对大括号。函数内部便是用于完成任务的代码。这些代码行被括在这对大括号中。
请查看大括号括住的代码行:
println("Happy Birthday!")
这行代码将输出文本 Happy Birthday!
。
println
指示系统输出一行文本。- 您可以在圆括号内添加要输出的文本。
- 请注意,要输出的文本需要用引号括起来。这将告知系统,引号内的所有文本都应严格按照提供的方式输出。
如需实际输出文本,整个 println
指令必须位于 main
函数内。
如下所示,这就是最小的 Kotlin 程序。
fun main(args: Array<String>) {
println("Happy Birthday!")
}
输出多条消息
太棒了!您已使用 println() function
输出了一行文本。不过,您可以根据需要或任务需求,在函数内添加任意行指令。
- 复制
println("Happy Birthday!")
代码行并将其粘贴到下方两次。确保所粘贴的代码行位于main
函数的大括号内。 - 将其中一个要输出的文本更改为人名,如“Jhansi”。
- 将另一个要输出的文本更改为“You are 25!”。
您的代码应如下所示。
fun main(args: Array<String>) {
println("Happy Birthday!")
println("Jhansi")
println("You are 25!")
}
您认为运行这段代码会得到什么样的结果?
- 运行您的程序,看看会产生什么结果。
- 前往控制台窗口,您应该会在控制台窗口中看到 3 行输出,如下面的屏幕截图所示。
表现不错!
处理错误
在编程时出错是很正常的,大多数工具都会提供反馈来帮助您更正错误。在这一步中,制造一个错误,看看会发生什么。
- 在您的程序中,移除文本
Jhansi
两边的引号,使代码行如下所示。
println(Jhansi)
- 运行程序。您应该会看到要输出的
Jhansi
显示为红色,并且在代码的第 8 行旁边有一个感叹号,提醒您这里有错误。
- 向下滚动以查看控制台。
- 选择问题视图标签页(如果尚未选择)。
- 查看“问题”视图标签页。窗格中显示了一条消息并且带有相同的感叹号图标和
Error
一词。后面跟着的是对代码中错误的说明。
- 查找数字
(8, 12).
。这些数字表示代码中发生错误的行(第 8 行)以及该行中发生错误的位置(字母12
)。 - 接下来,您可能会看到一条消息:
Unresolved reference: Jhansi
。此消息会告知您系统认为代码中存在的错误是什么。即使您不懂错误消息的含义,也许也能够找出错误所在。在本例中,您知道println()
指令用于输出文本。您在前面已经了解到,文本必须用引号括住。如果文本没有加引号,则会出现错误。 - 现在把引号加上。
- 运行您的程序,确保它能重新正常运行。
恭喜,您已经运行并更改了您的第一个 Kotlin 程序!
以下是您在此 Codelab 中编写的程序的完整代码。
- https://try.kotlinlang.org/ 是一个网页版交互式代码编辑器,您可以在其中练习编写 Kotlin 程序。
- 所有 Kotlin 程序都需要有一个
main()
函数:fun main(args: Array<String>) {}
println()
函数用于输出一行文本。- 用双引号括住您要输出的文本。例如
"Hello"
。 - 重复
println()
指令可输出多行文本。 - 程序中的错误会标记为红色。问题视图标签页中会显示错误消息,帮助您确定发生错误的位置以及错误原因。
此 Codelab 是“使用 Kotlin 进行 Android 开发的基础知识”课程的一部分。
执行以下操作:
- 将
println()
指令改为print()
。 - 运行程序。会出现什么情况?
提示:print()
指令只会输出文本,不会在每个字符串的末尾添加换行符。
- 请更正文本,使消息的每个部分独占一行。
提示:在文本中使用 \n
即可添加换行符。例如 "line \n break"
。添加换行符会更改输出,如下所示。
提示:您可以通过不提供文本来输出空行:println("")
。
代码:
fun main(args: Array<String>) {
println("no line break")
println("")
println("with line \n break")
}
输出:
检查您的作品:
以下是一种可能的解决方案:
fun main(args: Array<String>) {
print("Happy Birthday!\n")
print("Jhansi\n")
print("You are 25!")
}