1. 程式人生 > >go——基本型別

go——基本型別

  Go有許多預定義型別,這裡簡單把它們分為基本型別和高階型別。下面是基本型別列表:

Go的基本型別共有18個,其中int和uint的實際寬度會根據計算架構的不同而不同。
在386計算架構下,它的寬度為32位元,即4個位元組。
在amd64計算架構下,它們的寬度為64位元,即8個位元組。

byte型別可以看作unit8的別名型別,而rune可以看作int32的別名型別。
rune型別專用於儲存Unicode編碼的單個字元。我們可以用5種方式來表示一個rune字面量。
  (1)該rune字面量所對應的字元,比如"a"或"-",這個字元必須是Unicode編碼規範所支援的。
  (2)使用"\x"為前導並後跟兩位十六進位制數,這種方式可以表示寬度為1位元組的值,即一個ASCII編碼值。
  (3)使用"\"為前導並後跟3位八進位制數,這種方式也只能表示有限寬度的值,
    即它只能用於表示在0和255之間的值,它與上一個表示法的表示範圍是一致的。
  (4)使用"\u"為前導並後跟4位十六進位制數,它只能用於表示2位元組寬度的值。
  (5)使用"\U"為前導並後跟8位十六進位制數,它只能用於表示4位元組寬度的值,這種方式即為Unicode編碼規範中的UCS-4表示法。

此外,rune字面量還支援一類特殊的字元序列——轉義符。轉義符的表示方法是在"\"後面追加一個特定的單字元。

除了上述轉義符外,rune自變數中以”\“為前導的字元序列都是不和法的。

在Go中,字串值表示了一個字元值的集合。
在底層,一個字串值即一個包含了若干位元組的序列。
長度為0的序列與一個空字串相對應。字串的長度即底層位元組序列中位元組的個數。
一個字串字面量的長度在編譯期間就能夠確定。
字串字面量有兩種表示形式:原生字串字面量(由反引號”、“包裹)和解釋型字串字面量(由雙引號”"“包裹)。
前者所見即所得,而後者可以解析轉義字元。

注意,字串是不可變的,對字串的操作只能返回一個新字串,而不會改變原字串並返回。

只有基於型別及其別名型別來可以作為常量的型別。常量的宣告會用到關鍵字const。
單一常量宣告一般由關鍵字const、常量名、常量型別、等號=和常量值組成。
下面是兩個常量的說明:

const DEFAULT_IP string = “192.168.0.1”
const DEFAULT_PORT int = 9001

像這樣多個常量同時申明還可以簡寫成:

const (
	DEFAULT_IP  string = “192.168.0.1”
	DEFAULT_PORT  int = 9001
)