Go 快速入门
這一節(jié)主要講一講如何開發(fā)/運(yùn)行Go 程序, Go 程序執(zhí)行流程分析, 以及Go 程序開發(fā)注意事項(xiàng);
1. 案例
開發(fā)一個(gè)hello.go 程序, 可以輸出"hello,world"
1.1 目錄結(jié)構(gòu)如下:
1.2 代碼如下:
1.2.3說明:
(1) go 文件的后綴是.go
(2) package main
表示hello.go 文件所在的包是main, 在go 中,每個(gè)文件都必須歸屬于一個(gè)包
(3) import "fmt"
表示: 引入一個(gè)包, 包名fmt, 引入該包后,可以使用fmt 包的函數(shù),比如: fmt.Println,fmt.Printf;
(4) func main(){}
func 是一個(gè)關(guān)鍵字,表示一個(gè)函數(shù), main 是函數(shù)名,是一個(gè)主函數(shù),即程序的入口;
(5) fmt.Println("hello,world")
表示調(diào)用fmt 包的函數(shù)Println輸出"hello,world"
1.3 通過 go build 命令對(duì)該go 文件進(jìn)行編譯, 生成.exe 文件(Linux 平臺(tái)生成可執(zhí)行程序)
1.4 運(yùn)行hello.exe 文件即可;
1.5 同時(shí)也可以直接go run 使用直接運(yùn)行hello.go 程序,類似執(zhí)行腳本文件的方式
?
2. Golang 執(zhí)行流程分析
2.1 如果是對(duì)源碼編譯后再執(zhí)行, 流程如下:
2.2 如果是直接 go run 運(yùn)行, 流程如下:
2.3 兩種流程方式的區(qū)別
(1) 如果先編譯生成了可執(zhí)行文件,可以將該可執(zhí)行文件拷貝到?jīng)]有g(shù)o 開發(fā)環(huán)境的機(jī)器上運(yùn)行;
(2) 如果是直接go run , 在其它環(huán)境上也需要go 開發(fā)環(huán)境,否則無法正常運(yùn)行;
(3) 在編譯時(shí),編譯器會(huì)將程序運(yùn)行依賴的庫文件包含在可執(zhí)行文件中, 所以就導(dǎo)致編譯后可執(zhí)行文件變大了很多;
3. 編譯和運(yùn)行
3.1 有了go 源文件, 通過編譯器將其編譯成機(jī)器可識(shí)別的二進(jìn)制碼文件;
3.2 在源文件下可通過 go build 對(duì)hello.go 文件進(jìn)行編譯, 可以指定生成的可執(zhí)行文件名,Windows 下必須是.exe 后綴;
`go build -o main.exe hello.go`
3.3 如果程序沒有錯(cuò)誤,也無提示,會(huì)在當(dāng)前目錄下生成一個(gè)可執(zhí)行文件,Windows 下是.exe Linux 下為一個(gè)可執(zhí)行文件, 該文件是二進(jìn)制碼文件,同時(shí)也是一個(gè)可執(zhí)行程序;
3.4 如果程序有錯(cuò)誤,在編譯時(shí)會(huì)提示在哪一行報(bào)錯(cuò),需要大家去熟悉分析錯(cuò)誤;
4. Go 程序開發(fā)的注意事項(xiàng)
4.1 Go 源文件以".go" 為擴(kuò)展名;
4.2 Go 應(yīng)用程序的執(zhí)行入口是main() 函數(shù),和Java/c 一樣;
4.3 Go 語言嚴(yán)格區(qū)分大小寫;
4.4 Go 方法由一條條語句構(gòu)成,***每個(gè)語句后不需要分號(hào)***(Go 語言會(huì)在每行后自動(dòng)加分號(hào));
4.5 Go 編譯器是一行一行進(jìn)行編譯的,因此一行只寫一條語句,不能把多條語句寫在同一行,否則會(huì)報(bào)錯(cuò);
4.6 Go 語言定義的變量或import 包如未使用,則編譯不能通過;
4.7 Go 語言大括號(hào)成對(duì)出現(xiàn),缺一不可;
5. 最近也在寫微信公眾號(hào), 如有需要可搜索"開胃咸菜"關(guān)注, 最新文章會(huì)在微信公眾號(hào)發(fā)布,謝謝!
轉(zhuǎn)載于:https://www.cnblogs.com/Mail-maomao/p/11341734.html
總結(jié)
- 上一篇: 0x0806 ARP协议分析
- 下一篇: Go 转义字符及风格