Gopher 们,明天咱们就要开始一起进入编写程序的环节啦!!这次,咱们要学习的是《如何用 Go 编写你的第一个程序》,电脑、脑子、本子筹备好~
如何用 Go 编写你的第一个程序
前言
“Hello, World!”程序是计算机编程中的经典且历史悠久的传统。对于初学者来说,这是一个简略而残缺的第一个程序,它是一个确保你的环境配置正确的好办法。
本教程将疏导你在 Go 中创立此程序。然而,为了使程序更乏味,你将批改传统的“Hello, World!”程序,以便它能够询问用户的姓名。而后,你将在回复中应用该姓名。实现本教程后,你将领有一个运行起来如下所示的程序:
output
Please enter your name.
Sammy
Hello, Sammy! I'm Go!
装置前提
在开始本教程之前,你须要一个本地的 Go 开发环境。你能够依照上面其中一个教程在你的计算机上进行设置:
- 如何在 macOS 上装置 Go 和设置本地编程环境
- 如何在 Ubuntu 18.04 上装置 Go 和设置本地编程环境
- 如何在 Windows 10 上装置 Go 和设置本地编程环境
第一步:编写最根本的“Hello, World!”程序
为了编写 Hello, World!”程序,请关上一个命令行文本编辑器,例如 nano
,而后创立一个新文件:
nano hello.go
在 nano 中关上文本文件后,输出你的程序代码:
hello.go
package main
import "fmt"
func main() {fmt.Println("Hello, World!")
}
让咱们合成下代码的各个局部。
package
是一个 Go 关键字,它定义了这个文件属于哪个代码包。每个文件夹只能有一个包,并且文件夹中每个 .go
文件必须在其文件顶部申明雷同的包名。在这个例子中,代码属于 main
包。
import
是一个 Go 关键字,它通知 Go 编译器你想在这个文件中应用哪些其余包。在这里,你导入规范库附带的 fmt
包。fmt
包提供了在开发时很有用的格式化和打印性能。
fmt.Println
是一个 Go 函数,位于 fmt
包中,它通知计算机将一些文本打印到屏幕上。
在 fmt.Println
函数前面跟着一系列字符,例如 "Hello, World!"
,用引号括起来。引号内的任何字符都称为 _string_。fmt.Println
函数会在程序运行时将此字符串打印到屏幕上。
按 CTRL
和 X
键退出 nano
。当提醒保留文件时,按 Y
,而后按 ENTER
退出。
当初你能够试试你的程序了。
第二步:运行 Go 程序
你的“Hello, World!”程序写好之后,你就能够运行程序了。你能够用 go
命令而后前面跟着你刚刚创立的文件名。
go run hello.go
程序执行后会显示以下输入:
output
Hello, World!
让咱们来摸索下理论产生了什么。
Go 程序在运行之前必须要先编译。当你应用文件名调用 go run
时,在本例中为 hello.go
,go
命令将 编译 应用程序,而后运行生成的二进制文件。对于用 编译型 编程语言编写的程序,编译器将获取程序的源代码并生成另一种类型的低级代码(例如机器代码)来生成可执行程序。
Go 应用程序须要一个 main
包和一个确切的 惟一 main()
函数,作为应用程序的入口点。main
函数不承受任何参数并且不返回任何值。相同,它通知 Go 编译器应该将包编译为可执行包。
编译后,代码通过在 main
包中输出 main()
函数来执行。它通过_调用_ fmt.Println
函数来执行fmt.Println("Hello, World!")
行。Hello, World!
的字符串值被传递给函数。在此示例中,字符串 Hello, World!
也称为 _参数_,因为它是传递给办法的值。
Hello, World!
两边的引号不会打印到屏幕上,因为你用它们通知 Go 你的字符串在哪里开始和完结。
在这一步中,你曾经用 Go 编程创立了一个无效的“Hello, World!”。在下一步中,你将摸索如何使程序更具交互性。
第三步:提醒用户输出
每次运行程序时,它都会产生雷同的输入。在此步骤中,你能够把提醒用户输出他们的姓名增加到程序中。而后,你将在输入中应用他们的名字。
不要批改现有程序,而是应用 nano
编辑器创立一个名为 greeting.go
的新程序:
nano greeting.go
首先,增加这段代码,提醒用户输出他们的姓名:
package main
import ("fmt")
func main() {fmt.Println("Please enter your name.")
}
再一次,你应用 fmt.Println
函数将一些文本打印到屏幕上。
当初增加上面高亮行代码来存储用户的输出:
package main
import ("fmt")
func main() {fmt.Println("Please enter your name.")
var name string
}
var name string
即将应用 var
关键字 创立一个新变量。你将变量命名为“name”,它的类型为“string”。
而后增加上面高亮行代码来捕获用户的输出:
package main
import ("fmt")
func main() {fmt.Println("Please enter your name.")
var name string
fmt.Scanln(&name)
}
fmt.Scanln
办法通知计算机期待以换行符或 (\n
) 字符结尾的键盘输入。该办法会暂停程序,容许用户输出他们想要的任何文本。当用户按下键盘上的 ENTER
键时,程序将持续。而后捕捉所有点击,包含 ENTER
,而后将其转换为字符串。
你想在程序中应用这些字符输入,因而你通过将这些字符 写入 到被称为 name
的字符串 变量 中来保留这些字符。Go 将该字符串存储在计算机的内存中,直到程序实现运行。
最初,在程序中增加以下高亮行来打印输出:
package main
import ("fmt")
func main() {fmt.Println("Please enter your name.")
var name string
fmt.Scanln(&name)
fmt.Printf("Hi, %s! I'm Go!", name)
}
这一次,你应用的是 fmt.Printf
,而不是再次应用 fmt.Println
办法。fmt.Printf
函数承受一个字符串,并应用非凡的打印 占位符_, (%s
),将 name
的值注入到字符串中。你这样做是因为 Go 不反对 _字符串插值,它能够让你获取调配给变量的值并将其插入在字符串中。
按 CTRL
和 X
键退出 nano
。当提醒保留文件时,按 Y
。
当初运行程序。零碎将提醒你输出你的姓名,因而请输出并按 ENTER
。输入可能不完全符合你的预期:
output
Please enter your name.
Sammy
Hi, Sammy
! I'm Go!
而不是 Hi, Sammy! I'm Go!
,名字前面有一个换行符。
该程序捕捉了咱们 所有 的点击,包含咱们按下以通知程序持续的 ENTER
键。在字符串中,按 ENTER
键会创立一个特殊字符,该字符会创立一个新行。该程序的输入齐全依照你的要求执行;它正在显示你输出的文本,包含新行。这不是你冀望的输入,但你能够应用其余性能对其进行修复。
在你的编辑器外面关上 greeting.go
nano greeting.go
在你的程序里定位到上面这一行:
...
fmt.Scanln(&name)
...
在其前面减少上面一行:
name = strings.TrimSpace(name)
下面应用了 Go 规范库 strings
包中的 TrimSpace
函数,来解决你应用 fmt.Scanln
捕捉的字符串。strings.TrimSpace
函数从字符串的结尾和结尾删除任何空格字符,包含换行符。在这种状况下,它会删除你按下 ENTER
时创立的字符串开端的换行符。
要应用 strings
包,你须要在程序顶部导入它。
在你的程序找到上面这几行代码:
import ("fmt")
减少上面几行来导入 strings
包:
import (
"fmt"
"strings"
)
你的程序当初蕴含了以下代码:
package main
import (
"fmt"
"strings"
)
func main() {fmt.Println("Please enter your name.")
var name string
fmt.Scanln(&name)
name = strings.TrimSpace(name)
fmt.Printf("Hi, %s! I'm Go!", name)
}
按 CTRL
和 X
键退出 nano
。当提醒保留文件时,按 Y
。
再次运行程序:
go run greeting.go
这一次,在你输出你的名字并按 ENTER
后,你会失去预期的输入:
output
Please enter your name.
Sammy
Hi, Sammy! I'm Go!
你当初有一个 Go 程序,它承受用户的输出并将其打印回屏幕。
总结
在本教程中,你编写了 一个“Hello, World!”程序,能够从用户那里获取输出、处理结果并显示输入。既然你有一个根本程序能够应用,请尝试进一步扩大你的程序。例如,询问用户最喜爱的色彩,让程序说它最喜爱的色彩是红色。你甚至能够尝试应用雷同的技术来创立一个简略的 Mad-Lib 程序。
2022 GopherChina 大会报名仍在炽热进行中!Gopher 们扫描下方二维码即可报名参加,还等什么!
大会单干、现场招聘及企业购票等事宜请分割 微信:18516100522
本文由 mdnice 多平台公布