go 學習筆記---切片

wubuze發表於2020-11-24
  1. 刪除切片最後一個值
    scores := []int{1, 2, 3, 4, 5}
    lastIndex := len(scores)-1
    source[:lastIndex]
    scores = scores[:lastIndex]

  2. 建立一個切片,底層陣列是10, 長度是0
    scores := make([]int, 0, 10) //cap=10 len=0
    //cap=10 , len=3
    scores := make([]int, 3, 10)
    scores = append(scores, 1)
    //注意此時scores 是: [0 0 0 1]

  1. 交換切片中index,和lastIndex 的位置
    source[index], source[lastIndex] = source[lastIndex], source[index]

  2. Go 用了一個簡單的規則去定義什麼型別和函式可以包外可見。如果型別或者函式名稱以一個大寫字母開始,它就具有了包外可見性。如果以一個小寫字母開始,它就不可以。

  3. 程式碼格式化: go fmt ./…
    當你在一個專案內的時候,你可以運用格式化規則到這個專案及其所有子目錄

  4. Go 對 if 語句做了稍微修改,支援在條件語句被求值之前先進行初始化:

    if x := 10; count > x {
    ...
    }
  5. 空介面 interface{}
    因為空介面沒有方法,可以說所有型別都實現了空介面,並且由於空介面是隱式實現的,因此每種型別都滿足空介面契約。
    (個人理解:空介面可以接受任何型別)

    type User struck {
     Name string
     Age int
    }
    var user interface{} = User{"wubuze", 20}
  6. 空介面型別轉換 .(Type)
    延用上例的user

    u,ok := user.(User)  // 轉成了struct型別
    fmt.Println(u.Name, ok) 
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章