Go學習筆記之基礎資料類型

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

1 整數

在 Go 語言中,如果不加特殊首碼,都是10進位表示,例如:“100”

 

整數可以直接用指數形式,例如:“1E9”,意思是 1 * (10^9),1 乘以 10 的 9 次方

 

整數的加減法用 + 和 - 號,乘法用 * 號,除法用 / 號, 得到的商是整數,例如 5 / 2 = 2,而 % 號是求餘(模數), 例如 5 % 2 = 1

 

在 Go語言中,整數類型分為帶符號整型和不帶符號整型,接著又分別按照長度各自劃分為4個類型。

帶符號整型 int8 int16 int32 int64

不帶符號整型  uint8 uint16 uint32 uint 64

除此之外還有預設類型 int 和 uint,目前都是32位,未來可能會變成64位

還有2個特殊的整型別名 ,和字串很相關,分別是:byte(uint8),rune(int32),到字串相關時在做解釋

 

整數比較用 > / < / == / != / <= / >=,結果是布爾類型, true or false

 

按位元運算 &(且), |(或), ^(異或),&^(與非),<<(左移),>>(右移)

異或自身,相當於取反碼, 例如 ^1 = -2(ps:(^-1) + 1 = 求-1的補碼)

 

2 浮點數

在 Go 語言中,浮點數分為 float32 和 float64 兩種類型,符合 IEEE 754 的規定。

 

只有整數部分的浮點數,要加小數點標識,例如浮點數 1 的標識為 1.0

 

對於整數字面量 和浮點數字面量,Go 根據使用的場合,會自動 整數->浮點數 或 浮點數-> 整數 轉換

 

3 複數

基本上很少用到,簡單介紹下

在 Go 語言中,複數分為 complex64 和 complex128,可以用 0+1i 的格式表示  

 

4 布爾

在 Go 語言中,布爾值的類型為 bool,值是 true 或 false

布爾可以做3種邏輯運算,&&(邏輯且),||(邏輯或),!(邏輯非)

在邏輯運算式中,Go語言也支援短路判斷

布爾類型的值不支援其他類型的轉換

 

5 字串

在 Go 語言中,組成字串的最小單位是字元,儲存的最小單位是位元組,字串本身不支援修改。

 

位元組是資料存放區的最小單元,每個位元組的資料都可以用整數表示,例如一個位元組儲存的字元a,實際儲存的是97而非字元的字形,將這個實際儲存的內容用數字表示的類型,稱之為byte。

 

字元是 UTF-8 編碼的 Unicode 字元,Unicode 為每一個字元而非字形定義唯一的碼值(即一個整數),例如 字元a 在 unicode 字元表是第 97 個字元,所以其對應的數值就是 97,也就是說對於Go語言處理字元時,97 和 a 都是指的是字元a,而 Go 語言將使用數值指代字元時,將這樣的數值稱呼為 rune 類型

 

通常Unicode表示一個字元時,通常會用"U+"然後緊接著一組十六進位的數字來表示這個字元,例如 字元a 通常用 U+0061 來表示。

 

在 Go 語言中,如果直接按照字元的字形的話,可以用單引號 (') 括起來表示,例如 'a' ,也可按照碼值來表示,可以用 \xNN ,\uNNNN , \UNNNNNNNN 的 格式,每個 N 代表一位元。例如 字元a 可以用 \x61 或 \u0061 或 \U00000061

 

在 Go 語言中,可以用兩種方式表示字串,一種是雙引號 (") 括在一起的,可以包含逸出字元。另一種是使用反引號 (`) 括起的,可以包含換行等格式字元,感覺有點象其他語言的 heredoc 。

 

因為組成字串的最小單位是字元,而儲存的最小單位是位元組,對於字串遍曆,只有全是小於1個位元組字元(即碼值小於256)組成的,可以直接遍曆或者轉成byte切片遍曆,而包含大於1個位元組字元組成的,最安全的做法是轉換成rune切片。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.