Go:保留關鍵字及基本數據類型

1 命名規範

    在Go中幾乎所有的東西都是有名字或標識符的(類似於C家族語言),且它們是對大小寫敏感的。相應的規則如下:
  • 必須以字符開頭(所有Unicode UTF-8中的字符 或 下劃線“_”)
  • 後面可以跟0或多個字符或數字,如:x56, _x32等。
  • 不能以數字開頭或系統保留關鍵字和操作符。如:1ab, case, a+b。
  • 下劃線"_"本身在Go中是一個特殊的標識符,稱爲空標識符。可以代表任何其它的標識符,但是它對應的值會被忽略。所以僅能被作爲佔位符使用。
    同時,在Go中也支持匿名,如匿名變量、自定類型和函數。

2 系統關鍵字或保留字

    在Go中,爲了簡化代碼編譯過程中對代碼的解析,其定義的保留關鍵字只有25個。詳見如下:
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

    除了保留關鍵字外,外另還提供了36個預定的標識符,其包括基礎數據類型和系統內嵌函數。
append bool byte cap close complex
complex64 complex128 uint16 copy false float32
float64 imag int int8 int16 uint32
int32 int64 iota len make new
nil panic uint64 print println real
recover string true uint uint8 uintprt

3 內嵌數據類型
  • Boolean類型:
    • 系統爲此類型定義了兩個常量:true 和 false.
    • 初始默認值爲:false。
    • 格式化輸出時的格式字符串爲:%t。
    • 實例代碼:

    • 輸出結果爲:
      • flag1 = true
      • 
!flag1 = false

      • GlobalFlag = true
      • (flag1 && flag2) = false
      • (flag1 || flag2) = true

  • Byte類型:
    • 爲uint8的別外,即只有8個bit。
  • 數字類型:
    • 整數類型:
      • 有符號整數:int8, int16, int32, int64和int(此類型會根據特定的平臺可能會有所不同)
      • 無符號整數:uint8, uint16, uint32, uint64和uint (此類型會根據特定的平臺可能會有所不同)
      • 初始默認值爲:0。
      • 格式化輸出時的格式字符串爲:%d,輸出16進制:%x或%X;8進制:%o。
      • 實例代碼:

      • 輸出結果爲:
        • i8=9, i=27, ui32=30, ui64=40, defInt=0
        • 
i8=11, i=1b, ui32=1E, ui64=101000
        • 
The value=27, The Address=0x117d0238
    • 浮點類型:float32 和 float64
      • 初始默認值爲:0.0。
      • 注意:這裏沒有float的類型,且兩個浮點數比較時不能使用== 和 !=
      • 格式化輸出時的格式字符串爲:%g,%f則對應浮點類型的指針;%e則對應科學計數法辦輸出;%n.mg用於指定小數位輸出。
      • 實例代碼:

      • 輸出結果:
        • f32 = 2.054545, f64=4.054544925689697, default=0
        • 
f32 = 2.05
    • 複數類型:
      • complex64:實數與虛數都是32位
      • complex128: 實數與虛數都是64位
      • real(c):獲取實數部分
      • imag(c):獲取虛數部分
      • 格式化輸出時的格式字符串爲:%v, 另外也可以使用%f輸出實部和虛部。
      • 實例代碼:

      • 輸出結果:
        • The com1=(2+3i), The com2=(3+4i)
        • The com2=(5+7i)

        • The real of com2=5, The imag of com2=7
  • 字符類型:
    • 嚴格的說,在Go中沒有此類型類型,它是特殊的整數類型。
    • 它對應uint8類型,對傳統的ASCII碼對應,佔1byte。
    • 同時也支持Unicode(UTF-8)的編碼,所以它可能點多個byte,被稱爲Unicode code points或runes。此時它對應的int32的數字類型。
    • 包含在單引號中。
    • Unicode的字符通常以16進制的形式表示(\u+4或\U+8)
    • 格式化輸出時的格式字符串爲:%c;%v或%d則顯示對應的整數值;%U則輸出:U+hhhh
  • 字符串類型:
    • 一串UTF-8編碼格式的字符(可能佔1~4byte)---- Java中的字符都是佔2bytes。
    • 包含在雙引號中,只能在獨立的一行內。(Interpreted string)
    • 包含在反引號中,可以跨越多行。(raw string)
    • 注:Go所有的代碼都是UTF-8格式,所以不存在對字符進行編碼和解碼。
    • 它是不可變的值類型,所以不能直接修改字符串。
  • 指針類型:
    • 佔4byte大小。
    • 各種數據類型都有對應的指針類型。
    • 聲明方法類似於C中對指針的聲明: *type。

4 操作符
  • 邏輯運算符:
    • 與:&&,或:||,非:!。
    • ==,!=,<,>,<=,>=
  • 位運算符:
    • 只能工作在int類型的變量上。
    • 按位與:&,按位或:|,按位異或:^
    • 左移:<<,右移:>>。(空位補0)
  • 算術運算符:
    • +,-,*,/。
    • 取模:%
    • 簡化操作:-=,*=, +=, %=
    • ++, --。(只能在數字變量的後面,不能放在開頭,這是與C,Java不一樣的地方)。
  • 優先級:(7 -> 1:由高到低)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章