Go的100天之旅 04基礎資料型別

2021-10-08 03:48:14 字數 1826 閱讀 4994

在變數的定義中,我們講了每個變數是有型別的,型別在計算機中是用來約束資料的解釋。go語言和其它計算機語言一樣,提供豐富了豐富的資料型別,我們就來看看到底有哪些型別,同時也可以比較一下它和其它語言的區別。

整型就是用來表示變數是整數的型別。和c類似,go整型分為兩個大類,無符號和有符號的,有符號簡單來說就是能表示負數的型別,無符號就是這個型別沒有正負號,統一表示整數。除了符號還有一點就是長度,因為符號和長度就決定了整型的範圍。下面是go整型的分類:

型別說明

範圍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()

列印的是:

true

false

因此在平時的使用中需要注意精度的問題。除了直接用小數的形式,還可以用科學計數法,例如

var i float32 = 10e-2 // 0.01
布林型別一共有2種:truefalse,通常用進行邏輯判斷的

複數在通常用的不是很多,在數學上的定義,複數有實部和虛部。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)

但是必須實部和虛部都相同才為true

Go的100天之旅 01初識Go

上個世紀70年代ken thompson和dennis m.ritchie合作發明了unix作業系統同時dennis m.ritchie發明了c語言。2007年的robert griesemer,rob pike和ken。thompson三位大牛在google公司開始編寫和設計go語言。2009年g...

Go的100天之旅 03變數

變數這個詞 於數學,類似方程中的x y,代表的是儲存在計算機中的值。這裡主要介紹go和其它程式語言不一樣的地方,在前面我們提到過,go是一門靜態語言。靜態語言區別動態語言乙個重要的特性就是變數的型別不可變,一般是在宣告的時候就指定型別,之後就不可修改它的型別,而動態語言可以隨時修改變數的型別。go的...

Go的100天之旅 02基本語法

下面是go的25個關鍵字 break default func inte ce select case defer gomap struct chan else goto package switch const fallthrough ifrange type continue forimport...