Go的100天之旅-04基礎數據類型

簡介

在變量的定義中,咱們講了每一個變量是有類型的,類型在計算機中是用來約束數據的解釋。Go語言和其它計算機語言同樣,提供豐富了豐富的數據類型,咱們就來看看到底有哪些類型,同時也能夠比較一下它和其它語言的區別。ui

整型

整型就是用來表示變量是整數的類型。和C相似,Go整型分爲兩個大類,無符號和有符號的,有符號簡單來講就是能表示負數的類型,無符號就是這個類型沒有正負號,統一表示整數。除了符號還有一點就是長度,由於符號和長度就決定了整型的範圍。下面是Go整型的分類:code

類型 說明 範圍
int 整型,長度和平臺機器字節大小相關通常32或者64位 和字節碼相關
uint 無符號整型,長度和平臺機器字節大小相關通常32或者64位 和字節碼相關
int8 有符號8位整型 -128 ~ 127
uint8 無符號8位整型 0 ~ 255
int16 有符號16位整型 -32768 ~ 32767
uint16 無符號16位整型 0 ~ 65535
int32 有符號32位整型 -2147483648 ~ 2147483647
uint32 無符號32位整型 0 ~ 4294967295
int64 有符號64位整型 -9223372036854775808 ~ 9223372036854775807
uint64 無符號64位整型 0 ~ 18446744073709551615

浮點類型

Go有兩種浮點類型,float32float64,它們都符合IEEE754規範的定義。講到浮點類型不得不提到的就是精度,float32大概提供6位的精度偏差,而float64提供約15位的精度偏差。
例以下面的代碼:數學

package main

import "fmt"

func main() {
	var i float32 = 10
	var j float32 = 10.0000000001

    var m float64 = 10
	var n float64 = 10.0000000001

	fmt.Println(i == j)
    fmt.Println(m == n)
}

打印的是:table

true
false

所以在平時的使用中須要注意精度的問題。除了直接用小數的形式,還能夠用科學計數法,例如class

var i float32 = 10e-2 // 0.01

布爾型

布爾類型一共有2種:truefalse,一般用進行邏輯判斷的import

複數

複數在一般用的不是不少,在數學上的定義,複數有實部和虛部。Go提供了兩種精度的複數類型,complex64complex128分別對應了float32float64的精度。變量

var x complex128 = complex(1, 2) // 1+2i
var y complex128 = complex(3, 4) // 3+4i


i := 1 + 2i
j := 3 + 4i

上面是複數的寫法,分別指定它們的實部和虛部就好了。複數也能夠比較是否相等數據類型

i := 1 + 2i
j := 1 + 3i
fmt.Println(i == j)

可是必須實部和虛部都相同才爲truefloat

相關文章
相關標籤/搜索