go語言入門

  • 變量

    用關鍵字var聲明變量
    var v1 int //int類型
    var v2 string //string類型
    var v3 [10]int //數組
    var v4 []int //數組切片
    var v5 struct{
      f int
    }
    var v6 *int //指針
    var v7 map[string]int //map類型,key爲string,value爲int
    var v8 func[a int]int

  • 可以將若干需要聲明的變量放置在一起:

    var(
      v1 string
      v2 int
    )

  • 變量初始化

    var v1 int =10
    var v2 = 10 //編譯器自動推導
    v3 := 10 //編譯器自動推導
    := 出現在該符號左側的變量(如v3)不應該是已經聲明過的,否則會導致編譯錯誤

  • 匿名變量

    我們在使用傳統的強類型語言編程時,經常會出現這種情況,即在調用函數時爲了獲取一個
    值,卻因爲該函數返回多個值而不得不定義一堆沒用的變量。在Go中這種情況可以通過結合使
    用多重返回和匿名變量來避免這種醜陋的寫法,讓代碼看起來更加優雅。
    假 設 GetName() 函 數 的 定 義 如 下 , 它 返 回 3 個 值 , 分 別 爲 firstName 、 lastName 和
    nickName :
    func GetName() (firstName, lastName, nickName string) {
    return “May”, “Chan”, “Chibi Maruko”
    }
    若只想獲得 nickName ,則函數調用語句可以用如下方式編寫:
    _, _, nickName := GetName()
    這種用法可以讓代碼非常清晰,基本上屏蔽掉了可能混淆代碼閱讀者視線的內容,從而大幅
    降低溝通的複雜度和代碼維護的難度。

  • 常量

    通過關鍵字const給字面常量指定一個友好的名字
    const Pi float64 = 3.14159265358979323846
    const zero = 0.0    // 無類型浮點常量
    const (
    size int64 = 1024
    eof = -1    // 無類型整型常量
    )
    const u, v float32 = 0, 3     // u = 0.0, v = 3.0,常量的多重賦值
    const a, b, c = 3, 4, “foo”   // a = 3, b = 4, c = “foo”, 無類型整型和字符串常量

常量定義的右值也可以是一個在編譯期運算的常量表達式,比如
const mask = 1 << 3

  • 預定義常量

    iota:可被編譯器修改的常量,在每一個const關鍵字出現時被重置爲0,在下一個const出現之前,沒出現一次iota,其所代表的數字會自動增1
    const (
    c0 = iota //c0 = 0
    c1 = iota //c1 = 1
    c2 = iota //c2=2
    )

  • 枚舉

    const (
    Sunday = iota
    Monday
    Tuesday
    Wednesday
    Thursday
    Friday
    Saturday
    numberOfDays
    )
    同Go語言的其他符號(symbol)一樣,以大寫字母開頭的常量在包外可見。
    以上例子中 numberOfDays 爲包內私有,其他符號則可被其他包訪問

  • 類型

關鍵字 類型
bool 布爾類型
int8,byte,int16,int,uint,uintptr等 整形
float32,float64 浮點類型
complex64,complex128 複數類型
string 字符串
rune 字符類型
error 錯誤類型
pointer 指針
array 數組
slice 切片
map 字典
chan 通道
struct 結構體
interface 接口
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章