Go學習(1):簡介和配置
一、介紹和安裝
1.介紹
創立時間
2007年 google作為20%專案開始研發
2009年11月10日 開源,獲得TIOBE年度語言
2012年3月28日 釋出Go1.0版本
2016年8月18日 釋出Go1.7版本
1.1 什麼是Golang
Go也被稱為Golang,它是由谷歌建立的一種開源、編譯和靜態型別的程式語言。
Golang的主要目標是使高可用性和可伸縮的web應用程式的開發變得簡單易行。
1.2 為什麼選擇Golang
當有很多其他語言(如python、ruby、node.js)時,為什麼選擇Golang作為服務端程式語言呢?
- 併發是語言的一個固有部分。因此編寫多執行緒程式是小菜一碟。這是通過Goroutines和channel實現的,我們將在後面的教程中討論。
- Golang是一種編譯語言。原始碼編譯成原生二進位制。這在解釋語言(如nodejs中使用的JavaScript)中丟失了。
- 語言規範非常簡單。整個規範適合於一個頁面,您甚至可以使用它來編寫自己的編譯器:)
- go編譯器支援靜態連結。所有的go程式碼都可以靜態地連結到一個大的fat二進位制檔案中,並且可以輕鬆地部署到雲伺服器中,而不用擔心依賴關係。
2.安裝
2.1下載
在Mac、Windows和Linux三個平臺上都支援Golang。您可以從https://golang.org/dl/下載相應平臺的二進位制檔案。
Mac OS
從https://golang.org/dl/下載osx安裝程式。雙擊啟動安裝。按照提示,這應該在/usr/local/go中安裝了Golang,並且還會將資料夾/usr/local/go/bin新增到您的PATH環境變數中。
Windows
從https://golang.org/dl/下載MSI安裝程式。雙擊啟動安裝並遵循提示。這將在位置c中安裝Golang:\Go,並且還將新增目錄c:\Go\bin到您的path環境變數。
Linux
從https://golang.org/dl/下載tar檔案,並將其解壓到/usr/local。
將/usr/local/go/bin新增到PATH環境變數中。這應該安裝在linux中。
2.2 windows下安裝並配置環境變數
安裝步驟就不在多說什麼了,一路到底
A、配置環境變數
注意:如果是msi安裝檔案,Go語言的環境變數會自動設定好。
我的電腦——右鍵“屬性”——“高階系統設定”——“環境變數”——“系統變數”
假設GO安裝於C盤根目錄
新建:
-
GOROOT:Go安裝路徑(例:C:\Go)
-
GOPATH:Go工程的路徑(例:E:\go)。如果有多個,就以分號分隔新增
修改:
-
Path:在path中增加:C:\Go\bin;%GOPATH%\bin;
需要把GOPATH中的可執行目錄也配置到環境變數中, 否則你自行下載的第三方go工具就無法使用了
- 工作目錄就是我們用來存放開發的原始碼的地方,對應的也是Go裡的GOPATH這個環境變數。這個環境變數指定之後,我們編譯原始碼等生成的檔案都會放到這個目錄下,GOPATH環境變數的配置參考上面的安裝Go,配置到Windows下的系統變數裡。
- GOPATH之下主要包含三個目錄: bin、pkg、src。bin目錄主要存放可執行檔案; pkg目錄存放編譯好的庫檔案, 主要是*.a檔案; src目錄下主要存放go的原始檔
B、檢視是否安裝配置成功
使用快捷鍵win+R鍵,輸入cmd,開啟命令列提示符,在命令列中輸入
go env # 檢視得到go的配置資訊
go version # 檢視go的版本號
2.3 mac系統安裝並配置
安裝
雙擊pkg包,順著指引,即可安裝成功。
在命令列輸入 go version,獲取到go的版本號,則代表安裝成功。
配置環境變數
1、開啟終端輸入cd ~進入使用者主目錄;
2、輸入ls -all命令檢視是否存在.bash_profile;
3、存在既使用vim .bash_profile 開啟檔案;
4、輸入 i 進入vim編輯模式;
5、輸入下面程式碼,
其中 GOPATH: 日常開發的根目錄。GOBIN:是GOPATH下的bin目錄。
export GOPATH=/Users/ruby/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN
6、點選ESC,並輸入 :wq 儲存並退出編輯。可輸入vim .bash_profile 檢視是否儲存成功。
7、輸入source ~/.bash_profile 完成對golang環境變數的配置,配置成功沒有提示。
8、輸入go env 檢視配置結果
二、搭建開發工具
2.1 使用atom
安裝好atom工具,然後安裝go-plus外掛和atom-terminal-panel等外掛。
1.安裝go-plus外掛,這個外掛提供了Atom中幾乎所有go語言開發的支援,包括 tools, build flows, linters, vet 和 coverage tools。它還包含很多程式碼片段和一些其它特性。
2.language-go
3.安裝file-icon外掛,它提針對不同字尾的檔案,提供了大量的icon顯示。
4.設定字型大小等
atom快捷鍵大全,參照:https://www.cnblogs.com/hubgit/p/5130192.html
2.2 使用Goland
下載地址:http://www.jetbrains.com/go/
傻瓜式安裝,一路next,直到完成。
開啟Goland工具
建立專案:
常用快捷鍵:https://blog.csdn.net/benben_2015/article/details/78813670
2.3 其他開發工具
比如sublime text,editplus,notpad++,eclipse等等。。
三、第一個程式:HelloWorld
3.1 編寫第一個程式
1.開啟編輯器建立一個新的helloworld.go檔案,並輸入以下內容:
package main
import "fmt"
func main() {
/* 輸出 */
fmt.Println("Hello, World!")
}
2.執行go程式
執行go程式由幾種方式
方式一:使用go run命令
step1:使用快捷鍵win+R,輸入cmd開啟命令列提示符
step2:進入helloworld.go所在的目錄
step3:輸入go run helloworld.go命令並觀察執行結果。
方式二:使用go build命令
step1:使用快捷鍵win+R,輸入cmd開啟命令列提示符
step2:進入helloworld.go所在的目錄
step3:輸入go build helloworld.go命令進行編譯,產生同名的helloworld.exe檔案
step4:輸入helloworld.exe,執行
方式三:使用 go playground
step1:開啟一下網址https://play.golang.org/
3.2 第一個程式的解釋說明
3.2.1 package
- 在同一個包下面的檔案屬於同一個工程檔案,不用
import
包,可以直接使用 - 在同一個包下面的所有檔案的package名,都是一樣的
- 在同一個包下面的檔案
package
名都建議設為是該目錄名,但也可以不是
3.2.2 import
import “fmt” 告訴 Go 編譯器這個程式需要使用 fmt 包的函式,fmt 包實現了格式化 IO(輸入/輸出)的函式
可以是相對路徑也可以是絕對路徑,推薦使用絕對路徑(起始於工程根目錄)
-
點操作
我們有時候會看到如下的方式匯入包import( . "fmt" )
這個點操作的含義就是這個包匯入之後在你呼叫這個包的函式時,你可以省略字首的包名,也就是前面你調
用的
fmt.Println("hello world")
可以省略的寫成Println("hello world")
-
別名操作
別名操作顧名思義我們可以把包命名成另一個我們用起來容易記憶的名字import( f "fmt" )
別名操作的話呼叫包函式時字首變成了我們的字首,即
f.Println("hello world")
-
_操作
這個操作經常是讓很多人費解的一個操作符,請看下面這個importimport ( "database/sql" _ "github.com/ziutek/mymysql/godrv" )
_操作其實是引入該包,而不直接使用包裡面的函式,而是呼叫了該包裡面的init函式
3.3.3 main
main(),是程式執行的入口。
四、編碼規範
4.1 編碼規範
縮排
空格
4.2 註釋
- 單行註釋是最常見的註釋形式,你可以在任何地方使用以 // 開頭的單行註釋
- 多行註釋也叫塊註釋,均已以 /* 開頭,並以 */ 結尾,且不可以巢狀使用,多行註釋一般用於包的文件描述或註釋成塊的程式碼片段
4.3 識別符號
Go識別符號是用來標識變數、函式或任何其他使用者定義項的名稱。識別符號以字母a到Z或a到Z或下劃線開頭,後面跟著零或更多的字母、下劃線和數字(0到9)。Go不允許在識別符號中使用@、$和%等標點符號。Go是一種區分大小寫的程式語言。因此,Manpower和manpower是兩個不同的識別符號。
- 當識別符號(包括常量、變數、型別、函式名、結構欄位等等)以一個大寫字母開頭,如:Group1,那麼使用這種形式的識別符號的物件就可以被外部包的程式碼所使用(客戶端程式需要先匯入這個包),這被稱為匯出(像面嚮物件語言中的 public);
- 識別符號如果以小寫字母開頭,則對包外是不可見的,但是他們在整個包的內部是可見並且可用的(像面嚮物件語言中的 private )
4.4 語句的結尾
Go語言中是不需要類似於Java需要冒號結尾,預設一行就是一條資料
如果你打算將多個語句寫在同一行,它們則必須使用 ;
4.5 關鍵字
下面的列表顯示了Go中的保留字。這些保留字不能用作常量或變數或任何其他識別符號名稱。
內容來自網際網路.