【Go】Go語言學習筆記-1-簡介

爭取在入職前把《學習Go語言》這個文檔看完,把學習的筆記寫在博客中,做爲記錄,方便之後查閱。git

練習的代碼都放在我本身的GitHub中,地址爲:
https://github.com/poemqiong/GoExercisesgithub

1. 包閱讀方法

例如要查看unicode/utf8包的內容
godoc unicode/utf8 | less數組

2. package和import

pakckage main必須首先出現,而後是import,而後是其餘全部內容。當Go程序在執行時,首先調用的函數是main.main().app

3. 編譯和運行

編譯:go build test.go
直接運行:go run test.goless

4. 分號

若是兩個(或更多)語句放在一行書寫,它們必須用分號(;)分割,通常狀況下,不須要在行末加分號。函數

5. 變量

Go的變量類型不是int a,而是a int。聲明和賦值是兩個過程。學習

    1. 不一樣類型變量的賦值
      (1)
      var a int
      var b bool
      a = 15
      b = false
      (2)
      var {ui

      a int
         b bool

      }
      (3)指針

    2. := 15code

    • := false

    • 相同類型變量的賦值

    a, b := 20, 16
    _, b := 34,35

    注意:

    • _是一個特殊的變量名,任何賦給它的值都會被拋棄。

    • Go的編譯器會對聲明卻未使用的變量報錯。

    • 混合使用不一樣類型的變量會引發編譯器的錯誤。

    6. 常量

    在Go中,常量在編譯時被建立,只能是數字、字符串或者布爾值。

    7. 字符串

    Go中,字符串賦值以後是不能修改的。若是要修改,須要先轉換爲rune數組(rune是int32的別名)。
    兩個字符串相加應該寫爲
    s := "a" +

    "b"

    而不能寫作:
    s := "a"

    • "b"
      由於Go編譯器會自動在每一行末尾加上分號。

    8. 運算符

    運算符的優先級,第一行最高,最後一行最低:

    • / % << >> & &^

    • = | ^
      == != < <= > >=
      <-
      &&
      ||

    須要注意的是:

    • &^表示位清除

    • 沒有邏輯非!

    • Go不支持運算符重載

    9. 控制結構

    • if else

    • switch

    • goto

    • for

    • break and continue

    • range(迭代器)

    10. array

    array由[n]<type>定義,n標示array的長度,而<type>標示類型。賦值後,不能修改數組的大小,並且全部元素的類型相同。
    一維數組:
    a := [...]int{1,2,3}
    a := [3]int{1,2,3}
    二維數組:
    a := 3int {{1,2}, {3,4}, {5,6}}

    11. slices

    slice與array相似,可是能夠添加新的元素,slice是一個指向array的指針,是引用類型(引用類型使用make建立)。
    slice老是與一個固定長度的array成對出現。

    sl := make([]int, 10)

    append

    s0 := []int{0,0}
    s1 := append(s0, 2, 3, 4)

    copy

    • 函數copy從源slice src複製元素到目標dst,而且返回複製的元素的個數。

    • 源和目標能夠重疊。

    • 元素複製的數量是len(src)和len(dst)中的最小值。

    12. map

    聲明

    • map[<from type>]<to type>

    • 當只須要聲明一個map時,使用make的形式:mdays := make(map[string]int)

    添加

    mdays["Jan"] = 31

    判斷是否存在

    v, ok := mdays["Jan"]
    若存在的話,ok爲true

    刪除

    delete(mdays, "Jan")

    13. 小結

    因爲第一章是簡介,講的內容比較雜,相信在後續的使用中會愈來愈熟悉這些細節。

    相關文章
    相關標籤/搜索