1. 程式人生 > 其它 >從零學go之基礎語法<一>

從零學go之基礎語法<一>

一、標誌符

Go語言中識別符號由字母數字和_(下劃線)組成,並且只能以字母和_開頭。
舉幾個例子:abc,a12,_abc, _123

二、關鍵字

    break        default      func         interface    select
    case         defer        go           map          struct
    chan         else         goto         package      switch
    const        fallthrough  if           range        type
    
continue for import return var

三、37個保留字

Constants:   true  false  iota  nil

    Types:   int  int8  int16  int32  int64  
             uint  uint8  uint16  uint32  uint64  uintptr
             float32  float64  complex128  complex64
             bool  byte  rune  string  error

Functions:   make  len  cap  
new append copy close delete complex real imag panic recover

四、可見性

  1)宣告在函式內部,是函式的本地值,類似private
  2)宣告在函式外部,是對當前包可見(包內所有.go檔案都可見)的全域性值,類似protect
  3)宣告在函式外部且首字母大寫是所有包可見的全域性值,類似public

五、宣告方式

var(宣告變數), const(宣告常量), type(宣告型別) ,func(宣告函式)。

1、標準宣告

var 變數名 變數型別
例如:
var name string

2、批量宣告

var (
    a string
    b int
    c bool
    d float32
)

六、變數初始化

1、標準初始化

var 變數名 型別 = 表示式
var name string = "123"
var age int = 18
var name, age = "123", 20

2、型別推導,編譯器會根據等號右邊的值來推導變數的型別完成初始化,從而初始化時可以省略型別

var name = "123"
var age = 1

3、短變數宣告,不能用簡短宣告方式來單獨為一個變數重複宣告,:=左側至少有一個新變數,才允許多變數的重複宣告。這裡有個坑,會覆蓋全域性變數,且不會報錯。

func main() {  
    one := 0
    one := 1 // error: no new variables on left side of :=
}
func main() {
    one := 0
    one, two := 1, 2    // two 是新變數,允許 one 的重複宣告。
}

4、匿名變數,在使用多重賦值時,如果想要忽略某個值,可以使用'_' 。匿名變數不佔用名稱空間,不會分配記憶體,所以匿名變數之間不存在重複宣告。:=不能使用在函式外。‘‘_’’多用於佔位,表示忽略值。

func foo() (int, string) {
    return 10,"123";
}
func main() {
    x, _ := foo()
}

七、常量

1、宣告跟變數一樣,只是把var變成const

const pi = 3.14159
const (
    pi = 3.14159
    e = 2.7182
)

八、iota,常量計數器

const (
        n1 = iota //0
        n2        //1
        n3        //2
        n4        //3
    )
const (
        a, b = iota + 1, iota + 2 //1,2
        c, d                      //2,3
        e, f                      //3,4
    )