廣告線上推廣方式秦皇島網(wǎng)站seo
1.Go語(yǔ)言的特點(diǎn)
1)從語(yǔ)言層面支持并發(fā),實(shí)現(xiàn)簡(jiǎn)單
2)goroutine,輕量級(jí)線程,可實(shí)現(xiàn)大并發(fā)處理,高效利用多核
3)垃圾回收機(jī)制,內(nèi)存自動(dòng)回收,不需要開(kāi)發(fā)人員管理
4)天然并發(fā)
5)吸收了管道通信機(jī)制,形成Go語(yǔ)言特有的管道channel,通過(guò)管道channel,可以實(shí)現(xiàn)不同的goroute之間的相互通信。
6)函數(shù)返回多個(gè)值
2.Go入門(mén)(萬(wàn)物基于hello world)
(1)go文件的后綴是.go
(2)package main
表示hello,go文件所在的包是main,在go中,每個(gè)文件都必須歸屬一個(gè)包。
(3)import “fmt”
表示:引入一個(gè)包,包名fmt,引入該包后,就可以使用fmt包的函數(shù),比如:fmt.Println
(4)func main() {}
func 是一個(gè)關(guān)鍵字,表示一個(gè)函數(shù)
main是函數(shù)名,是一個(gè)主函數(shù),即我們程序的入口。
(5)fmt.Println(“hello”)
表示調(diào)用fmt包的函數(shù)
3.Golang執(zhí)行流程分析
(1)如果是對(duì)源碼編譯后,在執(zhí)行,Go的執(zhí)行流程如下圖
(2)如果是對(duì)源碼直接執(zhí)行g(shù)o run源碼,Go的執(zhí)行流程如下圖
兩種執(zhí)行流程的區(qū)別
1)如果先編譯生成了可執(zhí)行文件,那么我們可以將該可執(zhí)行文件拷貝到?jīng)]有g(shù)o開(kāi)發(fā)環(huán)境的機(jī)器上,仍然可以運(yùn)行
2)如果我們是直接go run ,go源代碼,那么如果要在另外一個(gè)機(jī)器上這么運(yùn)行,也需要go開(kāi)發(fā)環(huán)境,否則無(wú)法運(yùn)行。
3)在編譯時(shí),編譯器會(huì)將程序運(yùn)行依賴(lài)的庫(kù)文件包含在可執(zhí)行文件中,所以,可執(zhí)行文件變大了很多