如何在Kotlin中编写第一个程序?

我听说您想学习编程。

您很可能正在研究Kotlin,因为您想创建一个Android应用程序。 或者,也许您正在尝试着手进行后端Web开发。

无论哪种情况,Kotlin都是一种很好的入门语言。

您已经在寻找一个好的教程,但是无论如何,它们都需要Java方面的知识。

那不是很不幸吗?

从初学者的角度来看-绝对是!

那么,您会发现,本教程分为多部分,正是您所需要的,因为它没有任何以前的编程经验。

因此,本教程不会涉及到Android或Web开发领域,但它将为您提供一个坚实的基础,开始您的编程之旅。

“您的编程之旅”(来源: pexels

但在开始之前:

我需要在计算机上安装什么?

  • 终端应用程序。
  • 具有Kotlin语法高亮显示支持的简单文本编辑器(例如: Atom + kotlin软件包运行良好)。
PS:如果您需要在Atom中安装Kotlin软件包的帮助,请参阅Atom官方手册上的教程
PPS:为什么不使用IntelliJ IDEA或其他一些IDE?
尽管我很喜欢IntelliJ,但我理解对于初学者来说这可能会令人困惑。
而且,这将使您无法学习程序开发周期(编辑,编译,运行),因为IDE会为您做所有事情。
如果您已经是一位经验丰富的程序员,并且您不需要这些细节,而只想学习一些Kotlin,请使用任何喜欢的编辑器或IDE。 不过请记住:本教程将使用kotlinc编译器。
我的高级教程之一中,我们充分利用了IDE。
  • 要运行Kotlin编译器编译的程序,需要JDK(针对您的平台: Mac OS XLinuxWindows )。
  • Kotlin编译器 kotlinc 。 正确安装后,您应该能够在终端应用程序中运行命令kotlinc -version
$ kotlinc -version
info: kotlinc-jvm 1.2.21 (JRE 1.8.0_152-b16)

版本可能会有所不同,因为该语言( JetBrains )的作者经常更新该语言。

但是你说我不需要Java ...

在进行JDK的安装过程时,您可能想知道为什么要安装Java东西。

我只是告诉你,本指南不需要Java知识,不是吗?

所以,这是东西。

尽管Kotlin是自己的独立语言,但它确实依赖Java的标准库和开发套件。

您无需立即对此进行足够的思考。 它将在您的第一个应用程序中为您做的就是帮助Kotlin构建和运行您的应用程序。 适当时,我们将解决该问题。

暂时,我们应该立即着手在Kotlin中创建您的第一个程序!

你好世界-无聊...无聊吗?

我知道这很无聊,也许您已经看过几次了,但是在本文中,我们不仅要创建和运行您的“ Hello World”程序,还要:

  • 了解程序的代码及其组成的所有部分。
  • 探索构建和运行应用程序时发生的情况。

此外,您还将学习编程中可能发生的错误类型,并作为练习的一部分:

  • 您将在屏幕上打印一些更有趣的东西。
  • 您将以各种方式破坏程序,以便您可以经历开发周期中提到的所有类型的错误。

说到…

科特林的发展周期

在Kotlin中,我们将编程过程分为几个步骤:

  1. 通过在文本编辑器中键入程序来编写程序,然后将其保存到文件ProgramName.kt
  2. 通过在终端应用程序中键入kotlinc ProgramName.kt -include-runtime -d ProgramName.jar进行编译。 我们将稍后讨论该命令的各个部分。
  3. 通过在终端应用程序中键入java -jar ProgramName.jar来运行编译的程序。

第一步,您将使用Kotlin编程语言创建该程序的人类可读的表示形式。

第二步将人类可读的程序翻译成适合机器执行的语言。 -d ProgramName.jar选项指定将结果写入哪个文件。 -include-runtime告诉Kotlin编译器包括其标准库。 如果没有该选项,则下一步将看到运行时错误。

第三步运行程序。

让我们看看“ Hello World”程序的外观如何:

在Kotlin中创建您的第一个程序

编写Kotlin程序。

程序是一系列字符(例如字母,数字,空格和特殊符号)。 就像句子,段落或诗歌一样。

要编写程序,您需要使用文本编辑器键入这些字符并将其保存到名为HelloWorld.kt的文件中:

编译Kotlin程序

Kotlin编译器( kotlinc )是将您用Kotlin语言编写的程序转换为更适合在计算机上执行的语言的应用程序。

它以扩展名为.kt (包含您的程序)的常规文本文件作为输入,并创建扩展名为.jar (适合在计算机上执行的版本)的文件。

要编译Kotlin程序HelloWorld.kt ,请在终端中输入以下文本:

kotlinc HelloWorld.kt -include-runtime -d HelloWorld.jar

如果您正确键入程序,则应该看不到任何错误。 如果您在某处打错了文字,则会看到类似以下的错误输出:

HelloWorld.kt:1:14: error: expecting comma or ')'
fun main(args Array<String>) {
^
HelloWorld.kt:1:15: error: parameter name expected
fun main(args Array<String>) {
^
HelloWorld.kt:1:10: error: a type annotation is required on a value parameter
fun main(args Array<String>) {
^

此输出表明存在编译错误。 如果得到类似的信息,请确保正确键入了HelloWorld.kt程序。 如果必须,请逐个字符检查。

程序成功编译后,您将看不到任何输出。 通常,Kotlin编译器的任何输出都将指示排序错误或警告。

运行Kotlin程序

有了编译的程序后,就可以运行它。 当计算机运行您的应用程序时,它将严格按照您提供的说明进行操作。

这是编程中最重要的部分-您可以使计算机精确地执行您想要的操作。

要运行HelloWorld.jar程序,请在终端中键入以下命令:

java -jar HelloWorld.jar

如果一切正确,您将在终端中看到预期的输出:

Hello World
了解程序

println()行是文件HelloWorld.kt最重要的一行。 该行是在终端中打印“ Hello World”文本的行。 稍后,当我们要编写更复杂的应用程序时,我们将处理程序的其他部分,例如funargsArray<String>

println()函数在标准输出上打印提供的文本。 标准输出通常与终端中的输出相同,但并非总是如此。 有时,标准输出可以重定向到其他位置,例如重定向到文件中。

文本"Hello World"是字符串文字。 字符串文字是表示程序源代码中文本( String类型)的固定值的文字。 稍后我们将返回类型和文字。

创建程序

现在,您的所有程序都将变得很简单,就像HelloWorld.kt一样。 唯一的不同是将要放入main()函数中的语句序列。 创建程序的最简单方法是:

  • HelloWorld.kt内容复制到MyProgram.kt (其中“ MyProgram”是新程序的名称)
  • 用语句序列替换println()语句:

失误

无论您做什么,编程时都会出错。 可以通过仔细检查程序来解决问题(就像您修复语法和在给朋友的消息中拼写错误时所做的一样)。 您将遇到几种错误:

编译时错误

Kotlin编译器会捕获这些错误。 之所以发生此类错误,是因为源代码的结构不正确,并且Kotlin编译器无法理解您要告诉的内容。

Kotlin编译器会告诉您源代码中哪里有错误,以及编译器期望什么。 Kotlin编译器将尝试解释为什么它无法将代码转换为机器可执行语言。

运行时错误

在运行程序时(例如,在运行java -jar HelloWorld.jar ,执行系统会捕获这些错误。 之所以发生此类错误,是因为程序试图执行无效的操作,例如:

  • 被零除,
  • 试图访问不存在的数据,
  • 试图读取您无权读取的文件,
  • 试图访问互联网上不可用的资源,
  • 等等。
逻辑错误

这些错误也称为错误。 这些错误通常意味着程序在运行时产生错误的答案或错误的结果。

例如,如果您有一个程序,该程序要求用户输入两个数字并打印出这两个数字的总和。 当用户输入75 ,程序将打印13而不是12 。 那是一个错误的答案,因此程序存在逻辑错误(错误)。

程序员完全有责任检查错误的结果和程序的源代码,以找出其行为不正确的原因。 当您以程序员的身份发现“为什么”时,您应该能够修复该错误。

逻辑错误是最难的。 它们可能是微妙的,不可复制的并且很难找到。

作为程序员,至关重要的一点是,能够识别正在处理的错误类型,并仔细检查源代码以找出失败的原因并进行修复。 那是您应该通过练习和练习学习的第一项技能之一。

如果有足够的实践,那么您在避免这类错误方面会变得越来越好。 编写程序是一项需要不断谨慎和勤奋的活动。

输入输出

编写一个程序,不仅在屏幕上输出文本,而且还可以与用户进行交互,这不是很好吗?

这是任何程序的典型用例。 很少有应用程序不需要任何用户输入,因此您必须学习如何做。

在命令行应用程序世界中,有两种简单的方法可以做到这一点。

(而且您不希望直接进入图形或移动应用程序的世界,因为复杂性很高-首先要打基础)

命令行参数

第一种方法是从命令行参数读取用户输入。 例如,要访问第一个命令行参数,可以使用args[0] 。 对于第二个args[1] 。 对于第三个args[2] 。 等等。

这是读取第一个参数的示例程序: ReadFirstArgument.kt

现在尝试编译:

kotlinc ReadFirstArgument.kt -include-runtime -d ReadFirstArgument.jar

并运行它:

java -jar ReadFirstArgument.jar Peter

您应该看到预期的输出:

Hello, Peter! How are things going?

尝试用您的名字替换“ Peter”参数。 它应该向您打招呼,并询问您的情况如何!

从标准输入读取

现在,此方法更具交互性,但也更加复杂。 它将涉及一些概念,我们将在稍后讨论。

首先,我们将要求用户输入名称,然后将用户输入内容读入本地变量name (关于本地变量,以后)

这里最重要的部分是readLine() 。 它正在读取用户输入,直到行尾(当用户按下“ Enter”时)。

然后,我们将使用局部变量name就像在上一个程序中使用args[0]

要编写这样的程序,请创建文件ReadFromInput.kt并在文本编辑器中键入以下内容:

然后,使用kotlinc …命令编译该程序,然后使用java -jar …命令运行该程序。 正确完成此操作后,在运行程序时应看到以下内容:

你叫什么名字? > 玛丽
你好,玛丽! 事情进行得如何?

(重点是用户键入的内容)

尝试使用其他名称-它应该可以按预期工作。

练习题

  • 编写一个程序HelloWorldMultipleTimes.kt ,它将输出“ Hello World”十五次。
    如果您陷入困境或想查看答案,请在此处找到解决方案
  • 编写一个程序ReadTwoArguments.kt ,该程序将读取第一个和第二个命令行参数,并将其输出为用户的名字和名字。
    如果您陷入困境或想查看答案,请在此处找到解决方案
  • 编写一个程序ReadMutlipleInputs.kt ,该程序将询问用户其名字,然后询问他们的名字。 最后,该程序应通过姓氏和名字的组合来问候用户。
    如果您陷入困境或想查看答案,请在此处找到解决方案
  • HelloWorld.kt ,如果删除:
    * main
    * fun
    * println
    * "Hello World"
    * {
    * }
    *首先"
    *秒"
    这是什么样的错误(针对上述每个选项)?
    如果您陷入困境或想查看答案,请在此处找到解决方案
  • 编译HelloWorld.kt ,如果不指定该怎么办:
    -include-runtime
    如果您陷入困境或想查看答案,请在此处找到解决方案
  • 编写一个程序AsciiArtHello.kt ,它将在终端中输出以下内容:
## ## ######### ## ## #########
## ## ## ## ## ## ##
## ## ## ## ## ## ##
######### ######### ## ## ## ##
######### ######### ## ## ## ##
## ## ## ## ## ## ##
## ## ## ## ## ## ##
## ## ######### ######### ######### #########

如果您陷入困境或想查看答案,请在此处找到解决方案

  • 当运行程序ReadFirstArgument ,如果不提供第一个参数,则:
java -jar ReadFirstArgument.jar

会发生什么样的错误?

如果您陷入困境或想查看答案,请在此处找到解决方案

  • 我已经编写了以下程序HelloWeird.kt

该程序有什么问题? 如果编译并运行它会怎样? 如何修复该程序?

如果您陷入困境或想查看答案,请在此处找到解决方案

我的相关文章

From: https://hackernoon.com/how-to-write-your-first-program-in-kotlin-8554cb526158

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值