Golang數字類型

Golang數字類型

原文見:https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/04.5.md

整型 int 和浮點型 float

Go 語言支持整型和浮點型數字,並且原生支持複數,其中位的運算採用補碼(詳情參見 二的補碼 頁面)。

Go 也有基於架構的類型,例如:int、uint 和 uintptr。

這些類型的長度都是根據運行程序所在的操作系統類型所決定的:

int 和 uint 在 32 位操作系統上,它們均使用 32 位(4 個字節),在 64 位操作系統上,它們均使用 64 位(8 個字節)。
uintptr 的長度被設定爲足夠存放一個指針即可。
Go 語言中沒有 float 類型。

與操作系統架構無關的類型都有固定的大小,並在類型的名稱中就可以看出來:

整數

  • int8 [-128 -> 127]
  • int16 [-32768 -> 32767]
  • int32 [-2,147,483,648 -> 2,147,483,647]
  • int64 [-9,223,372,036,854,775,808 -> 9,223,372,036,854,775,807]

無符號

  • uint8 [255]
  • uint16[0 -> 65,535]
  • uint32[0 -> 4,294,967,295]
  • uint64[0 -> 18,446,744,073,709,551,615]

浮點型(IEEE-754 標準):

  • float32(+- 1e-45 -> +- 3.4 * 1e38)
  • float64(+- 5 * 1e-324 -> 107 * 1e308)

int 型是計算最快的一種類型。

整型的零值爲 0,浮點型的零值爲 0.0。

float32 精確到小數點後 7 位,float64 精確到小數點後 15 位。由於精確度的緣故,你在使用 == 或者 != 來比較浮點數時應當非常小心。你最好在正式使用前測試對於精確度要求較高的運算。

你應該儘可能地使用 float64,因爲 math 包中所有有關數學運算的函數都會要求接收這個類型。

你可以通過增加前綴 0 來表示 8 進制數(如:077),增加前綴 0x 來表示 16 進制數(如:0xFF),以及使用 e 來表示 10 的連乘(如: 1e3 = 1000,或者 6.022e23 = 6.022 x 1e23)。

你可以使用 a := uint64(0) 來同時完成類型轉換和賦值操作,這樣 a 的類型就是 uint64。

Go 中不允許不同類型之間的混合使用,但是對於常量的類型限制非常少,因此允許常量之間的混合使用


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