想知道更多區塊鏈技術,請搜索【鏈客區塊鏈技術問答社區】 鏈客,有問必答!!
查看文檔
首先先分享一個能夠在本地就能查看文檔的騷操做(linux系統)
1.打開命令行終端,輸入godoc -http=:8000,若是想後臺運行在後面加個&
2.而後打開瀏覽器,輸入網址:localhost:8000 就能夠愉快地看文檔了
go語言是個什麼東西我想不用我介紹了~~~你們百度吧
接下來我會一步一步地敲一個hello who
若是你使用的是linux系統:
sudo apt-get install golang
若是沒成功:
sudo add-apt-repository ppa:gophers/go
sudo apt-get update
sudo apt-get install golangpython
在終端執行go version
若是失敗,看下面配置環境變量
爲GOPATH作準備
GOPATH對Go來講是一個很重要的環境變量,在設置環境變量前,先要作一些準備工做
在你喜歡的地方創建一個文件夾,你能夠隨便起名,我呢是建在/home/username目錄中的,文件夾的名字就叫go。在該文件夾下再建3個文件夾,名字分別爲/bin,/pkg,/src。/src放源碼,使用go get命令時,源碼就下載在這個文件夾。/bin存放使用go install命令編譯的可執行文件。/pkg存放編譯後生成文件(這個目錄的做用是我百度的……我也不知道該咋用,畢竟初學者0.0)至此,準備工做完成。
設置環境變量
在/etc/profile或者~/.profile中加入這幾行命令
export GOROOT=/usr/lib/go
export GOPATH=/home/username/go(這裏視狀況而定,看本身的文件夾建在哪裏啦)
export PATH=$PATH:$GOPATH/bin(添加了這個環境變量後,go install生成的可執行文件在任何位置都能執行了0.0)
而後,在終端中敲入這樣的代碼,讓配置生效
source .profile(看你改了哪一個文件,這個文件只是爲特定單個用戶服務的,也就是說只對一個用戶起做用)
而後,在終端輸入 go env
能夠看到全部go相關的環境變量
在$GOPATH/src目錄下,新建名爲hello的文件夾,在該文件夾下新建hello.go的源代碼文件linux
package main
func main() {golang
who := "world!" if len(os.Args[1:]) > 0 {
who = ""瀏覽器
for _, arg := range os.Args[1:] { who += " " + arg } fmt.Println("hello", who)
}函數
go語言的工具鏈能夠說是十分厲害了,其中就有一個叫goimports的工具
若是你沒有安裝下面貼出安裝命令:
sudo apt-get install golang-golang-x-tools
而後執行如下命令:
goimports -w hello.go
-w參數做用爲將結果寫入文件,而不是輸出在終端,來看看如今的代碼工具
package main
import (區塊鏈
"fmt" "os"
)
func main() {命令行
who := "world!" if len(os.Args[1:]) > 0 { who = "" for _, arg := range os.Args[1:] { who += " " + arg } } fmt.Println("hello", who)
}代碼規範
gofmt也有將代碼規範化的功能,只是goimports工具更增強大,能夠自動導入須要的包。
進入hello目錄,在終端中輸入go install或者go install hello
進入/bin目錄,你會發現多了一個名爲hello的文件,在終端中輸入hello
~$ hello
hello world!
輸入hello Go language
~$ hello Go language
hello Go languagecode
解析接下來咱們來解析這個程序。首先看package main在Go語言中,全部的代碼必須從屬於包,每個Go語言程序都必須包含一個main包以及一個main()函數,main()函數是整個程序的入口,最早被執行。其實,Go語言還可能包含init()函數,先於main()執行,用於初始化包。須要注意的是,包名和函數名不會發生命名衝突。Go語言針對的處理單元是包而非文件,在Go語言編譯器看來,只要開頭的包聲明同樣,那麼它就屬於同一個包,就至關於都放在一個文件裏,很難理解對吧~~~就好像糖葫蘆,雖然插着好多個山楂,可是每一個山楂都屬於這個糖葫蘆中的一部分。因爲有這樣的特性,咱們能夠將包拆成任意數量的源代碼文件。import語句就不用我介紹了Go語言不須要;(除非在同一行中輸入多個語句),if和for語句也不須要(),分號由編譯器自動添加。Go語言的函數和方法由func關鍵字定義。你們可能會看到:=這樣怪異的表達,這個表達式完成了兩個操做,聲明和賦值,不須要聲明變量類型不表明Go語言是弱類型語言,Go語言是強類型語言,不須要聲明類型是由於Go會從初始化值中推導出類型。只能用在函數中,若是聲明包一級變量,能夠使用var關鍵字,var name = ???或者 var name type。然後面的who變量爲何不用,由於一旦使用了who:=""這樣的表達,就至關於在if語句做用域內部從新聲明瞭一個名爲who的變量,生命週期爲if語句內部,就是局部變量。在for循環中,使用了range關鍵字,每次循環會返回鍵和值,值存儲在arg中,_則是鍵。_,arg 這樣的表達看起很奇怪,這是由於Go語言不容許聲明變量後不使用,而咱們確實用不到range返回的鍵,因此使用 _ 這個東西,至關於垃圾堆。os.Args是一個string類型的切片(slice)和python差很少