如何用 Go 编写第一个程序

介绍

你好,世界!程序是计算机编程的经典和历史悠久的传统,是初学者的简单而完整的第一程序,是确保您的环境正确配置的好方法。

然而,为了使程序更有趣,你会修改传统的你好,世界!程序,以便它问用户他们的名字。

1[secondary_label Output]
2Please enter your name.
3Sammy
4Hello, Sammy! I'm Go!

前提条件

在您开始本教程之前,您需要在您的计算机上设置一个 本地 Go 开发环境

步骤1 - 写出基本的你好,世界!计划

要写Hello, World!程序,打开一个命令行文本编辑器,如nano,并创建一个新的文件:

1nano hello.go

一旦文本文件在终端窗口中打开,您将输出您的程序:

1[label hello.go]
2package main
3
4import "fmt"
5
6func main() {
7  fmt.Println("Hello, World!")
8}

让我们分解代码的不同组成部分。

package 是一个 Go keyword,它定义了该文件属于哪个代码包. 每个文件夹只能有一个包,每个 .go 文件必须在文件顶部声明相同的包名称。

「import」是一个 Go 关键字,它告诉 Go 编译器你想在这个文件中使用哪些其他软件包. 在这里,你导入与标准库一起的 fmt 软件包. fmt 软件包提供了在开发过程中有用的格式和打印功能。

fmt.Println是一个Go function,位于fmt包中,它告诉计算机在屏幕上打印一些文本。

您遵循fmt.Println函数的字符序列,如Hello, World!包含在引文标记中,在引文标记内部的任何字符都称为 string

通过键入CTRL + X来保存和退出nano,当被要求保存文件时,按Y

现在你可以试试你的程序。

步骤2 - 运行一个Go计划

随着Hello, World!编写,你已经准备好运行该程序,你将使用Go命令,然后是你刚刚创建的文件的名称。

1go run hello.go

该程序将执行并显示此输出:

1[secondary_label Output]
2Hello, World!

让我们探索实际发生了什么。

Go 程序需要在运行之前编译。当你用文件的名称调用go run,在这种情况下hello.go,go命令将 compile 应用程序,然后运行结果的二进制。

Go 应用程序需要一个主要包,并且需要一个 one主要( )函数,它作为应用程序的入口点。主要函数不需要参数,也不会返回值。

一旦编译,该代码会通过在包中输入main()函数来执行。它会通过 calling fmt.Println 函数来执行fmt.Println(你好,世界!)。

你好,世界!的两侧的引文不会打印到屏幕上,因为你使用它们来告诉你你的字符串开始和结束的地方。

在此步骤中,您已经创建了一个与Go一起工作的Hello, World!程序,在下一步中,您将探索如何使该程序更具互动性。

步骤 3 – 提示用户输入

每次你运行你的程序,它会产生相同的输出. 在这个步骤中,你可以添加到你的程序,请用户给他们的名字。

使用nano编辑器而不是修改现有程序,创建一个名为greeting.go的新程序:

1nano greeting.go

首先,添加以下代码,请用户输入自己的名字:

 1[label greeting.go]
 2package main
 3
 4import (
 5    "fmt"
 6)
 7
 8func main() {
 9  fmt.Println("Please enter your name.")
10}

再次,您使用「fmt.Println」函数将某些文本打印到屏幕上。

现在添加突出的行以存储用户的输入:

 1[label greeting.go]
 2package main
 3
 4import (
 5    "fmt"
 6)
 7
 8func main() {
 9  fmt.Println("Please enter your name.")
10  var name string
11}

var字符串将使用var keyword 创建一个新的变量,您将命名变量为name,它将是类型的string

然后,添加突出的行以捕捉用户的输入:

 1[label greeting.go]
 2package main
 3
 4import (
 5    "fmt"
 6)
 7
 8func main() {
 9  fmt.Println("Please enter your name.")
10  var name string
11  fmt.Scanln(&name)
12}

fmt.Scanln方法告诉计算机等待键盘的输入以新的行或(\n)字符结束。这会暂停程序,允许用户输入他们想要的任何文本。当用户在键盘上按下ENTER键时,该程序将继续使用。

你想在你的程序的输出中使用这些字符,所以你将这些字符保存到名为名称的变量字符串中,直到程序完成运行。

最后,在您的程序中添加以下突出的行,以打印输出:

 1[label greeting.go]
 2package main
 3
 4import (
 5    "fmt"
 6)
 7
 8func main() {
 9  fmt.Println("Please enter your name.")
10  var name string
11  fmt.Scanln(&name)
12  fmt.Printf("Hi, %s! I'm Go!", name)
13}

这一次,而不是再次使用fmt.Println方法,你正在使用fmt.Printffmt.Printf函数采用一个字符串,并使用特殊的打印 verbs, (%s),它将名称`的值注入到字符串中。

通过按CTRL + X来保存和退出nano,并在被要求保存文件时按Y

现在运行程序. 你将被提示你的名字,所以输入它并按ENTER

1[secondary_label Output]
2Please enter your name.
3Sammy
4Hi, Sammy
5! I'm Go!

相反,你好,萨米!我要去!在名字后面有一个线条断。

该程序捕获了我们的所有键键,包括我们按下的ENTER键,以告知程序继续。在一个字符串中,按ENTER键创建了一个特殊字符,创建了一个新行。

在您的编辑器中打开greeting.go文件:

1nano greeting.go

在你的节目中找到这条线:

1[label greeting.go]
2...
3fmt.Scanln(&name)
4...

接下來接下來這一行:

1[label greeting.go]
2name = strings.TrimSpace(name)

这使用了TrimSpace函数,从Go的标准库字符串包,在您用fmt.Scanln捕获的字符串上。

要使用字符串包,您需要在程序的顶部导入它。

将这些行列列入您的计划:

1[label greeting.go]
2import (
3    "fmt"
4)

添加以下行來輸入「strings」包:

1[label greeting.go]
2import (
3    "fmt"
4    "strings"
5)

您的计划现在将包含以下内容:

 1[label greeting.go]
 2package main
 3
 4import (
 5    "fmt"
 6    "strings"
 7)
 8
 9func main() {
10    fmt.Println("Please enter your name.")
11    var name string
12    fmt.Scanln(&name)
13    name = strings.TrimSpace(name)
14    fmt.Printf("Hi, %s! I'm Go!", name)
15}

保存和退出nano。按CTRL + X,然后按Y,当被要求保存文件时。

重新启动程序:

1go run greeting.go

这一次,在输入你的名字并按下ENTER,你会得到预期的输出:

1[secondary_label Output]
2Please enter your name.
3Sammy
4Hi, Sammy! I'm Go!

你现在有一个Go程序,从用户那里获取输入并将其打印回屏幕。

结论

在本教程中,你写了一个你好,世界!程序,它从用户那里获取输入,处理结果,并显示输出. 现在你有一个基本的程序来工作,试着进一步扩展你的程序. 例如,请问用户的喜爱颜色,并让程序说其喜爱的颜色是红色。

Published At
Categories with 技术
Tagged with
comments powered by Disqus