golang快速入門(mén)[3]-go語(yǔ)言helloworld
在之前,我們介紹了如何在windows、macos以及l(fā)inux平臺(tái)構(gòu)建go語(yǔ)言的開(kāi)發(fā)環(huán)境
本文將介紹如何書(shū)寫(xiě)、編譯、并運(yùn)行第一個(gè)go語(yǔ)言程序
同時(shí)詳細(xì)介紹其內(nèi)部機(jī)制
書(shū)寫(xiě)第一個(gè)go語(yǔ)言程序
- 首先我們可以在任意位置新建一個(gè)文件,命名為
main.go - go源文件以.go作為后綴,命名時(shí)建議統(tǒng)一為小寫(xiě)英文字母
- 用任意的文本編輯器(vim,notepade,emacs…)編輯文件,書(shū)寫(xiě)如下代碼
package main
import "fmt"
func main() {
fmt.Println("Hello, world")
}
- 第一行
package main: package是一個(gè)關(guān)鍵字(也叫做"包"),聲明為main的一個(gè)package - 每一個(gè)go語(yǔ)言的源文件都需要以package開(kāi)頭
- package == 工程 == 工作空間
- 可以將package理解為一個(gè)工程,或者是一個(gè)工作空間
- 多個(gè)文件可以聲明同一個(gè)package,但是必須在同一個(gè)文件夾中
- 聲明同一個(gè)package,代表在package中的代碼實(shí)現(xiàn)相似或者特定的功能
- package有兩種類型,一種是聲明為main的package,此package可以產(chǎn)生可以執(zhí)行的文件。
- 其他名字的package不能產(chǎn)生可以執(zhí)行的文件,其作為一種依賴包,有特定的功能,可以重復(fù)使用(例如數(shù)學(xué)計(jì)算)
- 第二行
import "fmt"代表程序?qū)肓送獠拷凶鰂mt的package - 這里的fmt是go語(yǔ)言標(biāo)準(zhǔn)庫(kù)中的代碼,go語(yǔ)言內(nèi)置了種類繁多的標(biāo)準(zhǔn)庫(kù)。參見(jiàn):golang標(biāo)準(zhǔn)庫(kù)文檔
- fmt是重要的標(biāo)準(zhǔn)庫(kù),內(nèi)置了許多輸入輸出功能,更可以用來(lái)進(jìn)行代碼調(diào)試
- go語(yǔ)言標(biāo)準(zhǔn)庫(kù)中的代碼存儲(chǔ)于GOROOT環(huán)境變量中,
- 第三行func main 定義了一個(gè)名字為main的函數(shù),函數(shù)是對(duì)于執(zhí)行代碼的封裝

image
- 因此,下面對(duì)整段代碼做一個(gè)總結(jié)

image
go代碼的編譯與運(yùn)行
- go是一門(mén)編譯型語(yǔ)言
- 在命令行下,
cd進(jìn)入代碼所在的路徑 - 在命令行下編譯代碼有兩種方式,運(yùn)行
go run main.go或者go build main.go,二者的區(qū)別如下圖所示 -
go run main.go不僅會(huì)編譯并且會(huì)自動(dòng)運(yùn)行程序 -
go build main.go僅僅會(huì)編譯代碼生成main.exe(windows下是以.exe為后綴的可執(zhí)行文件,而在mac或者linux下午后綴名) - 執(zhí)行
main.exe在命令行輸出:Hello, world

image
總結(jié)
在本文中,我們?cè)敿?xì)介紹了如何書(shū)寫(xiě)、編譯并運(yùn)行第一個(gè)go語(yǔ)言helloworld程序,并詳細(xì)說(shuō)明了每一行的意義。