Go語言從入門到放棄(三) 布爾/數字/格式化輸出


本章主要介紹Go語言的數據類型

布爾(bool)

布爾指對或者錯,也就是說bool只有兩個值, True 或 False

兩個類型相同的值可以使用比較運算符來得出一個布爾值

當兩個值是完全相同的情況下會返回 True,否則返回 False。

package main

var suma int = 11
var sumb int = 11

func main()  {
    print(suma == sumb)
}

上方的代碼返回 true

如果值不相同返回 false

如果變量類型不一樣會報錯

package main

var suma int = 11
var sumb int8 = 12

func main()  {
    print(suma == sumb)
}
invalid operation: suma == sumb (mismatched types int and int8)

邏 輯 值 可 以 被 用 於 條 件 結 構 中 的 條 件 語 句, 以 便 測 試 某 個 條 件 是 否 滿 足。 另 外, 和 &&、 或 | | 與 相 等 = = 或 不 等 != 屬 於 二 元 運 算 符, 而 非 ! 屬 於 一 元 運 算 符。

!運算符指的是非運算符,非 運 算 符 用 於 取 得 和 布 爾 值 相 反 的 結 果。

當!后的值為 true 時會反轉成 false

false 時同理

package main

var aVar int = 10

func main()  {
    print(!(aVar != 5))
}

返回 false

 

和運算符 && 

只有當兩邊都為 true 時才是 true

package main

var aVar int = 10

func main()  {
    print(aVar != 5 && aVar !=10)
}

結果為 false

 

或運算符 || 

只有當兩邊值都為 false 時才是 false 

package main

var aVar int = 10

func main()  {
    print(aVar != 5 || aVar !=10)
}

結果為 true

 

對 於 布 爾 值 的 好 的 命 名 能 夠 很 好 地 提 升 代 碼 的 可 讀 性, 例 如 以 is 或 者 Is 開 頭 的 isSorted、 isFinished、 isVisivle, 使 用 這 樣 的 命 名 能 夠 在 閱 讀 代 碼 的 獲 得 閱 讀 正 常 語 句 一 樣 的 良 好 體 驗, 例 如 標 准 庫 中 的 unicode.IsDigit( ch)

 

數字類型

數字類型大體可分為整形 int 和浮點型 float

需要注意的是,int和unit和unitptr長度是由程序所在的操作系統決定的

  如果在32位操作系統,int和unit占32位(4字節)

  64位則占64位(8字節)

  uintptr 長度為足夠存放一個指針

  # 目前機器基本為64位

整數有多種類型,每種類型對應不同的長度

關鍵字 支持的大小
int 隨操作系統變化
int8 -128 -- 127
int16 -32768 -- 32767
int32 -2147483648 -- 2147483647
int64 -9223372036854775808 -- 9223372036854775807
uint 隨操作系統變化
uint8 0 -- 255
uint16 0 -- 65535
uint32 0 -- 4294967295
uint64 0 -- 18446744073709551615

 uint 和 int 區別就是uint不支持復數

 

在 Go 語言中沒有 float 類型,只有 float32 和 float64 

關鍵字

支持的大小

float32

+- 1e-45 -> +- 3.4 * 1e38

float64

+- 5 * 1e-324 -> 107 * 1e308

 

你需要知道的是

  int是計算最快的一種類型

  如果是對數字有要求的變量盡量規定長度

  整形的初始值(零值為0),浮點數的零值為(0.0)

  float32精確到小數點后7位,float64精確到后15位

  如果你使用到 math 包,那么盡可能使用 float64,因為 math 中關於數學運算的函數都要求接收此類型

  如果涉及到類型之間的轉換使用 轉換后的類型(原變量)  的方式

  如果將大范圍數字轉換為小范圍類型時會丟失精度

進制

你 可 以 通 過 增 加 前 綴 0 來 表 示 8 進 制 數( 如: 077),

增 加 前 綴 0x 來 表 示 16 進 制 數( 如: 0xFF),

以 及 使 用 e 來 表 示 10 的 連 乘( 如: 1e3 = 1000, 或 者 6.022e23 = 6.022 x 1e23)。

格式化輸出

在 格 式 化 字 符 串 里,% d 用 於 格 式 化 整 數(% x 和 %X 用 於 格 式 化 16 進 制 表 示 的 數 字),

% g 用 於 格 式 化 浮 點 型(% f 輸 出 浮 點 數,% e 輸 出 科 學 計 數 表 示法),

% 0d 用 於 規 定 輸 出 定 長 的 整 數, 其 中 開 頭 的 數 字 0 是 必 須 的。

%n.mg 用 於 表 示 數 字 n 並 精 確 到 小 數 點 后 m 位, 除 了 使 用 g 之 外, 還 可 以 使 用 e 或 者 f,

  例 如: 使 用 格 式 化 字 符 串 %5.2e 來 輸 出 3.4 的 結 果 為 3.40e + 00。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM