藝多不壓身,學習一下最近蠻火的Go語言,整理一下筆記。相關Code和筆記也放到了Git上,傳送門。linux
1.從Hello world開始git
2.測試程序,變量,常量github
常量定義方面windows
// 1.快速設置連續值 const ( Monday = iota + 1 Tuseday Wednesday ... Sunday ) // 2. 表狀態的bite位也能夠這麼玩 Const ( Open = 1 << iota Close Pending )
3.基本數據類型數組
bool
string
int int8 int16 int32 int64
uint unit8 unit16 unit32 unit64 uintptr
byte // alias for unit8
rune // alias for int32, represents a Unicode code point !!!這個類型之後會詳詳細介紹,暫且放一放
float32 float64
complex64 complex128函數
類型的預約義值
例如:
math.MaxInt64
math.MaxFloat64
math.MaxUnit32學習
指針類型 於其餘主要變成語言的差別
1. 不支持指針運算
2. string是值類型,其默認的初始化值爲空字符串,而不是nil測試
4.運算符ui
算術運算符spa
比較運算符
經常使用運算符與別的語言沒什麼差別,但什麼對象能夠比較稍有差別,往後補充
例:用==比較數組
相同維數且含有相同個數元素的數組纔可比較
每一個元素都相等才相等
邏輯運算符
與別的語言沒由什麼差別
位運算符
& | ^ << >>沒什麼差別
與其餘語言的差別 &^ 按位置零 (按位清零) 運算符
1 &^ 0 -- 1
1 &^ 1 -- 0
0 &^ 1 -- 0
0 &^ 0 -- 0
該運算符這樣計算, 只要操做符右邊的運算數上的位置爲1,不管左邊對應位置上的運算數是多少都清零。
右邊操做符上的操做數爲0時則左邊原來是什麼就顯示什麼。
注意,使用Go語言就要使用Go的特色,寫出真正的Go程序而不是將其餘語言翻譯成Go.
5.條件和循環
循環
Go語言僅支持循環關鍵字for
例 for j:= 7; j <= 9; j++ (不須要括號括起來)
while條件循環 while (n < 5) Go版本 n := 0 for n < 5 { n++ fmt.Println(n) } 無限循環 while(true) Go版本 n := 0 for { ... }
if條件
例: if condition { ... } else { ... } if condition - 1 { ... } else if condition - 2 { ... } else { ... }
區別:
if vardeclaration; condition { // code to be executed if condition is true }
switch條件與其餘語言的差別
寫法舉例: 1. switch os := runtime.GOOS; os { case "darwin": fmt.Println("OS X.") //break case "linux": fmt.Println("Linux.") default: // freebsd, openbsd, // plan9, windows... fmt.Printf("%s.", os) } 2. switch { case 0 <= Num && Num <= 3: fmt.Prinft("0-3") case 4 <= Num && Num <= 6: fmt.Prinft("4-6") case 7 <= Num && Num <= 9: fmt.Prinft("7-9") }