1. 程式人生 > >[dev][go] 學習Golang都需要掌握什麽

[dev][go] 學習Golang都需要掌握什麽

org 包管理 計算 pos 行程 .html ogl repos 就是

一 什麽?

首先要了解Golang是什麽。

Golang是一門計算機編程語言;可以編譯成機器碼的像python一樣支持各種特性的高級語言。

由Google發明,發明人之一是K,就是C語言的那個K&R的K。

網站:https://golang.org/

二 安裝環境

安裝環境,無外乎就是安裝編譯器。

有兩套(我知道的),一個官方的Go,一個Gcc-Go

這裏不討論GccGo。

2.1 安裝

安裝官方Go,有兩個辦法,一個是去網站下載,然後自己解壓。另一個是用包管理工具yum,pacman等。

下載的話,就去這裏download:https://golang.org/dl/, 然後tar解壓就可以了。

之後把你解壓的目錄的bin,加到PATH環境變量裏。然後,和使用包管理工具安裝的便沒有任何區別。

運行一下go,如果你能看見幫助信息,說明安裝正確。

2.2 配置

配置之前,你需要理解什麽是包管理,就是java(為什麽是java?)裏邊那個包管理,不是上小結的包管理。

隨便找了一個,最好讀一下:http://www.runoob.com/java/java-package.html

因為接下來要建立目錄結構,而目錄結構需要與包結構保持一至,所以最好要懂得包的概念。不過對於不求甚解的你,依葫蘆畫瓢也是可以的,不懂也罷。

配置的話,

只需要配置你的workspace的路徑給GOPATH環境變量就可以了,不配的話,默認在這裏:~/go/

這個目錄是幹啥的?就是GO世界裏的根目錄,GO的世界都在這個根下,它不認識外邊的世界。

在這個目錄下,至少需要兩個子目錄,bin, src。src裏是未來的所以代碼,src也是所有go package的根。

編譯,並install之後的二進制,都在bin下面。當你執行了go install 之後。

舉例一個目錄實例,註意觀察src下的目錄樹,等同於package的數。

bin/
    hello                          # command executable
    outyet                         # command executable
src
/ github.com/golang/example/ .git/ # Git repository metadata hello/ hello.go # command source outyet/ main.go # command source main_test.go # test source stringutil/ reverse.go # package source reverse_test.go # test source golang.org/x/image/ .git/ # Git repository metadata bmp/ reader.go # package source writer.go # package source ... (many more repositories and packages omitted) ...

三 使用

代碼寫好,並正確的放置到了目錄樹裏邊之後,就可以編譯,運行了。

go run/build/install 包名。三個命令分別對應著解釋執行,編譯,安裝三個操作。

go的程序,即可以解釋執行,可以編譯成二進制執行。

如,根據上面的目錄結構:

go run github.com/golang/example/
go build hello
go install hello

執行過上邊的命令後,在bin目錄下會生成可執行程序hello。我們可以直接執行它。

生成執行程序的名字,與包名一致。

你一定要再讀一下,這個,會把我上邊寫的東西,更生動準確的講一下:

https://golang.org/doc/code.html

四 編碼

當完成了以上三步的操作之後,我們便已經具備了go語言的運行環境了。接下來便可以開始學習編碼了。

4.1 新手入門

第一個我建議閱讀的不是任何書,也不是任何手冊,而是這樣一份剪短而清晰的指南。理論上如果你足夠聰明絕頂(我還不行,我植被茂盛)的話,只看這一個也足夠上手了。

https://tour.go-zh.org/welcome/1

4.2 語法規約

你一定是一個嚴謹的吧?不是可以跳過這裏。

作為一個嚴謹的人,我們一定要了解每一個Go語言的每一個細節。然後再反觀設計哲學,才敢寫下第一行寶貴的go代碼。

語法規約:https://golang.org/ref/spec

4.3 風俗習慣

入鄉即要隨俗,寫代碼這種事,有各種各樣的窮講究。命名怎麽寫,縮進怎麽縮。入了中餐館用筷子,入了西餐館用刀叉,吃烤全羊用手抓。

進了Go餐館,我們怎麽吃:https://golang.org/doc/effective_go.html

4.4 庫

201x年,高級語言(相對於C)最大的魅力不在於靈活的語法,不在於好看的IDE。而在於豐富的庫。

這裏,有一個所有庫的列表,以及他們的文檔:

https://golang.org/pkg/

五 實踐

你需要找一份寫的好的代碼,讀一讀抄一抄。

然後,再找一個不太復雜的需求,寫一寫。

六 另外

另外,還有一本書,我還沒看,大家都在看。我馬上要去看一下(此刻的我跳過了第五小節)。。。。

https://book.douban.com/subject/27044219/

七 完

離開了第五小節,其他的都是紙上談兵。

[dev][go] 學習Golang都需要掌握什麽