這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
今天看無聞的視頻,2到5講的內容,一些摘要零星寫在下面:
1. main函數作為程式入口,必須存在且在main的package裡
2. type 用來聲明 新的類型,struct,interface
3. import var const 等等都可以()來聲明多個,但是未調用函數的話會報錯,保證速度。var只能聲明全域變數時使用括弧,函數中聲明變數不行。
4. import 可以取別名比如
import std “fmt”
import . “fmt” 這樣就直接調用fmt的函數了
5. 約定函數名小寫是私人的,開頭大寫是公有的。
6. bool 類型只有true和false
7. int/uint 根據平台決定32位64位,
int8 -128~127
uint8 0~255
byte unit8 別名
rune int32
float32 float64 沒有double 精確到7/15位小數
uintptr
其他如array struct string slice map chan inteface func
8. 類型的零值,聲明後的預設值,0,false,Null 字元串,null math包中有最大最小值
9. var a int = 321 此時可以省略int 自動推斷
或者 直接 b:=1 懷念pascal (:用來代替var,所以全域不能用),局部變數的多個聲明時,使用a,b,c,d = 1,2,3,4這樣的並行方式。
10. 空白符號_ 用來忽略複製,a,_,c:=1,2,3
11. 類型轉換 b[:]=int(a), :取決於是否聲明過
12. var a int = 64
b := string(a) 輸出了@
否則引入strconv包,使用Itoa函數
13. 常量組中,不賦值的話,值就是上一行的常量運算式。且初始化規則一致,比如第一行a,b第二行必須得c,d,個數要一樣
14. iota 在常量組中,每定義一個加1,從0開始
15. if 語句 不帶括弧,可以初始化,分號分割,左大括弧必須一行
16. switch 語句靈活,但是執行完第一個符合的就跳出了,否則加fallthrough
17. goto break continue 可以配合標籤使用,可以跳出多層迴圈