使用 Kotlin 编写您的第一个程序

在此 Codelab 中,您将借助一款可在浏览器中运行的交互式编辑器,使用 Kotlin 语言编写您的第一个程序。

您可以将程序视为一系列指示系统执行某项操作的指令。举例而言,您可以编写一个用于制作生日贺卡的程序。在该程序中,您可以编写一条指令,指示系统输出祝福语,或根据寿星的出生年份计算其年龄。

就像您使用人类语言与他人沟通一样,您可以使用编程语言与计算机的操作系统进行沟通。幸运的是,相较于人类语言,编程语言更简单,逻辑相当严密。

Android 应用采用 Kotlin 编程语言编写。Kotlin 是一种现代语言,旨在帮助开发者高效编写代码,并尽可能减少错误。

同时学习如何创建应用和编程基础知识并非易事,因此,我们将先介绍一些编程的入门知识,然后再讲解如何创建应用。先熟悉一些编程基础知识,这不仅是创建应用的重要步骤,还有助于您在本课程中的后面部分,更轻松地创建您的第一款应用。

代码编辑器是帮助您编写代码的工具,这和文字处理器(如 Google 文档)帮助您创建文本文档是一样的。在此 Codelab 中,您将在浏览器中使用交互式 Kotlin 编辑器。这意味着,您不必安装任何软件,即可迈出应用开发的第一步。

前提条件

  • 能在网络浏览器中使用交互式网站。

学习内容

  • 如何创建、更改、理解和运行用于显示一条消息的最简单的 Kotlin 程序。

您将构建的内容

  • 您将使用 Kotlin 编程语言编写一个在运行时将显示一条消息的程序。

所需条件

  • 一台安装了新版网络浏览器(如最新版 Chrome)的计算机。
  • 计算机可以访问互联网。

在此任务中,您将使用网站上的编辑器,立即上手 Kotlin 语言编程。

使用交互式代码编辑器

您可以不必在计算机上安装软件,而是使用网页版工具来创建您的第一个程序。

  1. 在浏览器中,打开 https://developer.android.com/training/kotlinplayground。这将打开一个基于浏览器的编程工具。
  2. 您应该会看到一个类似于以下屏幕截图所示的页面,页面中间便是一个代码编辑器。c76b631b5d7b5546.png

以下是编辑器中的程序代码:

fun main() {
    println("Hello, world!")
}

运行程序代码

运行您创建的程序与在计算机上运行文字处理器等程序没有多大区别。不同之处在于,在您运行程序来处理事务或玩游戏时,您关注的是程序的功能,而不是实现功能的代码。在编程过程中,您能查看并处理实现这些神奇功能的实际代码。

我们来看看这个程序能做什么!

  1. 在编辑器的右上角,找到白色或绿色三角形图标 3384088a105a0da9.png,点击它即可运行程序。
  2. 查看屏幕底部的窗格。
Hello, world!
  1. 您可以看到,系统输出了 Hello, world!,如上图所示。现在您应该知道这个程序的作用了:它输出一条 Hello World 的消息。

“编译”是将 Kotlin 程序代码转换为系统可运行的形式的过程。如果编译成功,则表明程序中没有会阻碍其正常运行的错误。如果有问题,它们会显示在屏幕底部的窗格中。

更改 Hello World 代码

我们来修改一下该程序,让它执行略微不同的操作。

  1. "Hello, world!" 文本更改为 "Happy Birthday!"
  2. 点击右上角的蓝色或绿色运行按钮,运行程序。
  3. 您现在应该会在屏幕底部看到输出的 Happy Birthday!,如下所示。
Happy Birthday!

工作机制是怎样的?

这是怎么做到的?看起来只是输出一些内容就需要使用大量代码!

如果您想让朋友在一张纸上写下“Hello, world!”,则其中可能包含大量隐含信息。如果您只是告诉对方:“在这张纸上写下‘Hello world!’”,他们会对您省略的信息做出各种假设。例如,他们会认为自己需要一支笔,而且您希望他们使用字母来书写!计算机不会做出这些假设,因此您必须给出包含每个步骤的精确指令。

就像英语一样,编程语言也有结构。如果您学习过其他语言,就会知道学习语法、拼写(或许是新的符号字母)和词汇有多么困难。学习编程也面临着类似的挑战,好在它比英语等语言更简单易学,且更有逻辑性。

了解程序的组成部分

现在,我们来看一下代码。程序的每个部分都有特定的用途,而要运行程序,每个部分都不可或缺。我们先从代码中的第一个单词说起。

fun
  • fun 是 Kotlin 编程语言中的一个单词。fun 代表函数。函数是程序中用于执行特定任务的部分。
fun main
  • main 是这个函数的名称。函数需要用名称来区分彼此。此函数之所以称为 main,是因为它是您运行程序时调用的第一个函数(即主函数)。每个 Kotlin 程序都需要有一个 main 函数。
fun main()
  • 函数名称后面总是跟着一对圆括号 ()
  • 在圆括号内,您可以添加供函数使用的信息。函数的该输入称为“参数”,或简称 args。稍后我们会详细介绍参数。
fun main() {}
  • 请注意紧跟在圆括号后面的一对大括号 {}。函数内部便是用于完成任务的代码。这些代码行被括在这对大括号中。

请查看大括号括住的代码行:

println("Happy Birthday!")

这行代码将输出文本 Happy Birthday!

  • println 指示系统输出一行文本。
  • 您可以在圆括号内添加要输出的文本。
  • 请注意,要输出的文本需要用引号括起来。这将告知系统,引号内的所有文本都应严格按照提供的方式输出。

如需实际输出文本,整个 println 指令必须位于 main 函数内。

如下所示,这就是最小的 Kotlin 程序。

fun main() {
    println("Happy Birthday!")
}

太棒了!您已使用 println() function 输出了一行文本。不过,您可以根据需要或任务需求,在函数内添加任意行指令。

  1. 复制 println("Happy Birthday!") 代码行并将其粘贴到下方两次。确保所粘贴的代码行位于 main 函数的大括号内。
  2. 将其中一个要输出的文本更改为人名,如“Jhansi”。
  3. 将另一个要输出的文本更改为“You are 25!”。

您的代码应该如以下代码所示。

fun main() {
    println("Happy Birthday!")
    println("Jhansi")
    println("You are 25!")
}

您认为运行这段代码会得到什么样的结果?

  1. 运行您的程序,看看会产生什么结果。
  2. 转到输出窗格,您应该会在控制台窗口中看到 3 行输出,如下所示。
Happy Birthday!
Jhansi
You are 25!

非常棒!

处理错误

在编程时出错是很正常的,大多数工具都会提供反馈来帮助您更正错误。在这一步中,制造一个错误,看看会发生什么。

  1. 在您的程序中,移除文本 Jhansi 两边的引号,使代码行如下所示。
println(Jhansi)
  1. 运行程序。您应该会看到要输出的 Jhansi 显示为红色,并且在改过的代码行旁边有一个感叹号,提醒您这里有错误。8f2f490d4e1d9d96.png
  2. 查看输出窗格。窗格中显示了一条消息并且带有相同的感叹号图标和 Error 一词。后面跟着的是对代码中错误的说明。

cd65347bcb6890d6.png

  1. 消息 Unresolved reference: Jhansi 告诉您系统认为代码中存在的错误是什么。即使您不懂错误消息的含义,也许也能够找出错误所在。在本例中,您知道 println() 指令用于输出文本。您在前面已经了解到,文本必须用引号括住。如果文本没有加引号,则会出现错误。
  2. 现在把引号加上。
  3. 运行程序,确保它能重新正常运行。

恭喜,您已经运行并更改了您的第一个 Kotlin 程序!

以下是您在此 Codelab 中编写的程序的完整代码。

fun main() {
    println("Happy Birthday!")
    println("Jhansi")
    println("You are 25!")
}
  • https://developer.android.com/training/kotlinplayground 是一个网页版交互式代码编辑器,您可以在其中练习编写 Kotlin 程序。
  • 所有 Kotlin 程序都需要有一个 main() 函数:fun main() {}
  • println() 函数用于输出一行文本。
  • 用双引号括住您要输出的文本,例如 "Hello"
  • 重复 println() 指令可输出多行文本。
  • 程序中的错误会标记为红色。输出窗格中会显示错误消息,帮助您确定发生错误的位置以及错误原因。

请进行以下练习

  1. println() 指令改为 print()
  2. 运行程序。会出现什么情况?

提示print() 指令只会输出文本,不会在每个字符串的末尾添加换行符。

  1. 请更正文本,使消息的每个部分独占一行。

提示:在文本中使用 \n 即可添加换行符,例如 "line \n break"。添加换行符会更改输出,如下所示。

提示:您可以通过不提供文本来输出空行:println("")

代码

fun main() {
    println("no line break")
    println("")
    println("with line \n break")
}

输出

no line break

with line
 break

检查您的程序

以下是一种可能的解决方案:

fun main() {
    print("Happy Birthday!\n")
    print("Jhansi\n")
    print("You are 25!")
}