這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
什麼是Go?
go是一門並發支援、記憶體回收的編譯型系統編程語。旨在創造一門具有在靜態編譯語言的高效能和動態語言的高並發之間擁有良好平衡點的一門程式設計語言。
官方網站:https://golang.org
Go特點
- 型別安全和記憶體安全
- 以非常直觀和極低代交的方案執行高並發
- 高效的記憶體回收
- 快速編譯
- UTF-8支援
go的存在價值
Go在Google:以軟體工程為目的的語言設計
安裝
下載連結:
http://www.golangtc.com/download
安裝比較簡單,直接點擊下一步就可
安裝好之後,軟體會自動幫我們配置path環境。
安裝okey以後,可以通過再命令提示字元中輸入go env 查看go語言編譯參數
GOPATH設定
goPath有什麼用呢?
GOPATH是一些目錄,用於go來尋找包的目錄列表. 使用import “包名” 的時候, 如果在 GOROOT(安裝目錄)裡找不到, 應該會轉向到你的GOPATH裡去尋找。
GOPATH可以有效避免第三方包汙染了核心go的pkg和src檔案。
$GOPATH 目錄約定有三個子目錄:
- src 存放原始碼(比如:.go .c .h .s等)
- pkg 編譯後產生的檔案(比如:.a)
- bin 編譯後產生的可執行檔
通過set gopath 來設定path命名
當然在windows下也可以通過環境變數來設定
go常用命令
go get
擷取遠程包
go run
編譯列出的檔案,並產生可執行檔然後執行。注意只能用於main包,否則會出現go run: cannot run non-main package的錯誤。
go bulid
編譯包,如果是main包則在目前的目錄產生可執行檔,其他包不會產生.a檔案;
go fmt
格式化源碼
go install
編譯包,同時複製結果到GOPATH/bin,GOPATH/pkg等對應目錄下;
go test
運行測試檔案
go doc
查看文檔
協助文檔的使用
通過go doc+相應的命令
直接存取官方網站:https://golang.org
如果網速比較忙,可以通過在命令列輸入go doc -http=:8081
這樣,就可以在本地訪問
go語言中資料類型
- 布爾 bool
長度:1個位元組
取值範圍:true、false
不可以使用數字代表true、false
- 整型 int/uint
平台如果是32位則為32,平台如果是64位,則為64位,由平台所定。
可以通過數字限定整型範圍如下
int8/uint8代表8位整型
範圍-128~127/0~255
當然還有int16/uint16、int32/uint32、int64/uint64
- 字元型byte(uint8別名)
- 浮點型float32/float64
長度4/8位元組
- 複數:complex64/complex128
長度8/16位元組
- 其它類型
array、struct、string
- 參考型別
slice、map、chan
- 介面類型
inteface
- 函數類型func
變數的聲明
變數聲明格式
var <變數名> <變數類型>
變數的賦值
<變數名>=<運算式>
在聲明的同時賦值
var <變數名> [<變數類型>]=<運算式>
var a int8 //變數聲明a=16 //變數賦值var b int =15 //同時進行變數聲明和賦值var c int =15 //同時進行變數聲明和賦值d:=15//變數聲明和賦值最簡寫法
執行個體
在D:\goProject下目錄結構
——-bin
——-src
————–main
———————index.go
———————trace.go
——-pkg
//index.go檔案如下
//命名當前程式的包名package main//通過import匯入其他包import "trace"// 定義常量func main(){ hello() trace.Show("hello,world")}//首字母小寫,表示外部不能調用func hello(){ trace.Show("hello,lidequan")}
//trace.go
package traceimport "fmt"//首字母大寫,表示外部可以調用func Show(str string) { fmt.Println("a.go is package mufunc.") fmt.Println(str)}
在命令提示中輸入go install命名
可以看到bin目錄下產生exe可執行檔,在pkg下產生包檔案
如果想直接運行,也可以通過go run +index.go
注意事項
1.每個子目錄中只能存在一個package,否則編譯時間會報錯
大小寫問題
在go語言中,使用大小寫來決定常量、變數、類型、介面、結構或是函數是否可以被外部所調用。如函數名首字母小寫即為private,外部不可以調用,首字母大寫即為public,外部可以調用。