一、前言介紹
Go也被稱爲Golang,它是由谷歌創建的一種開源、編譯和靜態類型的編程語言。Golang的主要目標是使高可用性和可伸縮的web應用程序的開發變得簡單易行。
Go時間線
Go語言在2007年,由Google作爲20%項目開始研發;
2009年11月10日Google將Go語言進行開源,並在當年獲得TIOBE年度語言;
2012年3月28日,Go語言1.0版本正式發佈;
2016年8月18日 發佈Go1.7版本。
更多GO語言編程知識可以來QQ羣:850351616。
爲什麼介紹及選擇Golang
肯定有很多同學會有這樣一個疑問,當有很多其他語言(如python、ruby、node.js)時,爲什麼選擇Golang作爲服務端編程語言呢?這裏就簡單說一下Golang語言的幾個特點:
- 併發是語言的一個固有部分。因此編寫多線程程序是小菜一碟。這是通過Goroutines和channel實現的,我們將在後面的教程中討論。>併發是語言的一個固有部分。因此編寫多線程程序是小菜一碟。這是通過Goroutines和channel實現的,我們將在後面的教程中討論。
- Golang是一種編譯語言。源代碼編譯成原生二進制。這在解釋語言(如nodejs中使用的JavaScript)中丟失了。
- 語言規範非常簡單。
- go編譯器支持靜態鏈接。所有的go代碼都可以靜態地鏈接到一個大的fat二進制文件中,並且可以輕鬆地部署到雲服務器中,而不用擔心依賴關係。
二、安裝
2.1 下載
在Mac、Windows和Linux三個平臺上都支持Golang。可以從官網下載相應平臺的二進制文件。
2.1.1 Mac OS
從 Golang官網 下載osx安裝程序。雙擊啓動安裝。按照提示,這應該在/usr/local/go中安裝了Golang,並且還會將文件夾/usr/local/go/bin添加到本地PATH環境變量中。
2.1.2 Windows
從Golang官網下載MSI安裝程序。雙擊啓動安裝並遵循提示。這將在位置c中安裝Golang:\Go,並且還將添加目錄c:\Go\bin到path環境變量。
2.1.3 Linux
從Golang官網下載tar文件,並將其解壓到/usr/local。將/usr/local/go/bin添加到PATH環境變量中。
2.2 Windows下安裝並配置環境變量
安裝步驟就不再多說什麼了,一路到底即可。
A、配置環境變量
注意:如果是msi安裝文件,Go語言的環境變量會自動設置好。
我的電腦——右鍵“屬性”——“高級系統設置”——“環境變量”——“系統變量”
假設GO安裝於C盤根目錄,則新建:
- GOROOT:Go安裝路徑(例:C:\Go)。
- GOPATH:Go工程的路徑(例:E:\go)。如果有多個,就以分號分隔添加。
修改: - Path:在path中增加:C:\Go\bin;%GOPATH%\bin;
B、查看是否安裝配置成功
打開cmd終端,鍵入:
go env # 查看得到go的配置信息
go version # 查看go的版本號
2.3 mac系統安裝並配置
A、安裝
雙擊pkg包,順着指引,即可安裝成功。
在命令行輸入 go version,獲取到go的版本號,則代表安裝成功。
B、配置環境變量
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.4 Linux系統安裝並配置
A、解壓安裝包
ruby@ubuntu:~/下載$ sudo tar -xzf go1.9.2.linux-amd64.tar.gz -C /usr/local
B、配置環境變量
編輯$home/.profile文件。我們需要將/usr/local/go/bin添加到環境變量PATH中。可以通過vi直接將下面內容添加到$HOME/.profile中。
export PATH=$PATH:/usr/local/go/bin
配置gopath,就是存儲go源文件的位置。對於Ubuntu系統,默認使用Home/go目錄作爲gopath,該目錄下有3個子目錄:src,pkg,bin。
export GOPATH=$HOME/go
C、讓配置文件生效
先進入根目錄:
ruby@ubuntu:~$ cd /
進入usr/local目錄下:
ruby@ubuntu:/$ cd usr
ruby@ubuntu:/usr$ cd local
使用source命令讓配置文件生效:
ruby@ubuntu:/usr/local$ source $HOME/.profile
D、測試安裝
ruby@ubuntu:/usr/local$ go version
三、開發工具介紹及安裝
在具體的工作場景重,有很多工具IDE可以從事Go的開發,比如:ATOM,GoLand,sublime text等等。我們這裏選用的是GoLand。
下載地址:GoLand官網
關於激活碼:默認的GoLand有30天免費體驗週期,超過30天后,需要使用激活碼才能激活。大家可以自行在搜索引擎中搜索,如果搜索不到,可以到淘寶去買,很便宜,我買的2塊錢一個。
四、第一個程序:HelloWorld
4.1 編寫及運行
A、程序編寫
激活GoLand後,打開程序,新建一個項目,選擇自己項目保存的路徑。在GoLand中新建Helloworld.go文件。
package main
import "fmt"
func main(){
fmt.Println("Hello world")
}
B、程序運行
方式一:使用go run命令。在終端及terminal中運行:go run Helloworld.go
方式二:在IDE中,右鍵Run執行。
4.2 程序的解釋說明
4.2.1 package
- 在同一個包下面的文件屬於同一個工程文件,不用import包,可以直接使用。
- 在同一個包下面的所有文件的package名,都是一樣的。
- 在同一個包下面的文件package名都建議設爲是該目錄名,但也可以不是。
4.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")
- _操作。這個操作經常是讓很多人費解的一個操作符,請看下面這個import
import (
"database/sql"
_ "github.com/ziutek/mymysql/godrv"
)
4.2.3 main
main(),是程序運行的入口。
五、Go語言的編碼規範
5.1 編碼規範
縮進
空格
5.2 註釋
- 單行註釋是最常見的註釋形式,你可以在任何地方使用以 // 開頭的單行註釋。
- 多行註釋也叫塊註釋,均已以 / 開頭,並以 / 結尾,且不可以嵌套使用,多行註釋一般用於包的文檔描述或註釋成塊的代碼片段。
5.3 標識符
Go標識符是用來標識變量、函數或任何其他用戶定義項的名稱。標識符以字母a到Z或a到Z或下劃線開頭,後面跟着零或更多的字母、下劃線和數字(0到9)。Go不允許在標識符中使用@、$和%等標點符號。Go是一種區分大小寫的編程語言。因此,Manpower和manpower是兩個不同的標識符。
- 當標識符(包括常量、變量、類型、函數名、結構字段等等)以一個大寫字母開頭,如:Group1,那麼使用這種形式的標識符的對象就可以被外部包的代碼所使用(客戶端程序需要先導入這個包),這被稱爲導出(像面嚮對象語言中的 public)。
- 標識符如果以小寫字母開頭,則對包外是不可見的,但是他們在整個包的內部是可見並且可用的(像面嚮對象語言中的 private )。
5.4 語句的結尾
Go語言中是不需要類似於Java需要冒號結尾,默認一行就是一條數據。
如果你打算將多個語句寫在同一行,它們則必須使用。
5.5 關鍵字
下面的列表顯示了Go中的保留字。這些保留字不能用作常量或變量或任何其他標識符名稱。