介绍
你好,世界!
程序是计算机编程的经典和历史悠久的传统,是初学者的简单而完整的第一程序,是确保您的环境正确配置的好方法。
然而,为了使程序更有趣,你会修改传统的你好,世界!
程序,以便它问用户他们的名字。
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.Printf
。fmt.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程序,从用户那里获取输入并将其打印回屏幕。
结论
在本教程中,你写了一个你好,世界!
程序,它从用户那里获取输入,处理结果,并显示输出. 现在你有一个基本的程序来工作,试着进一步扩展你的程序. 例如,请问用户的喜爱颜色,并让程序说其喜爱的颜色是红色。