Go語言學習筆記(1)——順序編程
阿新 • • 發佈:2018-06-20
寫法 AR [] 多重賦值 返回值 賦值 表達 div long
Go語言學習筆記這一堆主要是《Go語言編程》(人民郵電出版社)的讀書筆記。中間會穿插一些零碎的點,比如源碼學習之類的。大概就是這樣吧。
1. 順序編程
1.1 變量
變量的聲明:
var 變量名 類型
var v1 int
也可以把若幹變量的聲明用大括號括起來
var { v1 int v2 string }
變量初始化:
變量的初始化可以用如下的方法:
var v1 int = 10 var v2 = 10 v3 := 10
這三種方法的效果大體上是一樣的。需要註意的有:第三種方法不能用於聲明全局變量;以及:=賦值符號不能用於已聲名過的變量名。
變量的賦值:
賦值這裏唯一特別的是,Go語言支持多重賦值,比如交換i和j的值:
i, j = j, i
匿名變量:
Go語言有一個特性,就是在引入的包和變量在沒有使用的時候,會在編譯階段報錯。所以對於不需要的變量,可以使用匿名變量進行處理。
兩個例子,第一個是多重返回函數的返回值的處理:
func GetName() (firstName, lastName, nickName string) { return "May", "Chan", "Chibi Maruko" } _, _, nickName := GetName()
如果只需要函數的部分返回值的時候,就可以利用匿名變量。
第二個是for循環:
var a int[] = {5, 4, 3, 2, 1} for _, value := range(a) { balabala }
當我們不需要range返回的部分結果的時候,就可以利用匿名變量。
1.2 常量
字面常量:大概只有一點要說,就是不需要額外做特別的聲明。比如對於long類型的12,不存在12l這種寫法。
常量定義:通過const關鍵字進行定義。
const Pi float64 = 3.1415926
需要註意的大概有:聲明的時候可以不限定類型;常量定義的右值也可以是編譯期運算的常量表達式。
const Zero = 0.0 const mask = 1 << 3 const Home = os.GetEnv("HOME")
這裏第三句會導致錯誤。因為右值只有在運行期才能知道結果。
預定義常量:true,false,iota。
這裏true和false沒有什麽說的。
iota可以被認為是一個可被編譯器修改的常量,該常量在每一個const關鍵字出現的時候被重置為0。在下一個const出現之前,每出現一次iota,其所代表的數字自動加1。
未完待續。
Go語言學習筆記(1)——順序編程