這篇“Go中的數(shù)值類型有哪些”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Go中的數(shù)值類型有哪些”文章吧。
創(chuàng)新互聯(lián)是一家專業(yè)提供丹寨企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、成都網(wǎng)站建設(shè)、H5場景定制、小程序制作等業(yè)務(wù)。10年已為丹寨眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。
Go中數(shù)值類型有3種:1、整數(shù)類型,可分為平臺(tái)無關(guān)整型及平臺(tái)相關(guān)整型,區(qū)別是在不同CPU架構(gòu)或操作系統(tǒng)下長度是否是一致的。2、浮點(diǎn)類型,可分為float32與float64兩種,分別對(duì)應(yīng)IEEE754中的單精度與雙精度浮點(diǎn)數(shù)值類型。3、復(fù)數(shù),可分為complex128(64位實(shí)數(shù)和虛數(shù))和 complex64(32位實(shí)數(shù)和虛數(shù))兩種,其中complex128為復(fù)數(shù)的默認(rèn)類型。
Go語言體系中的基本數(shù)據(jù)類型總來的來說包括數(shù)值類型與字符串類型。
而數(shù)值類型又可分為以下幾種:整數(shù)、浮點(diǎn)數(shù)、復(fù)數(shù),其中每一種都包含了不同大小的數(shù)值類型,例如有符號(hào)整數(shù)包含 int8、int16、int32、int64 等,每種數(shù)值類型都決定了對(duì)應(yīng)的大小范圍和是否支持正負(fù)符號(hào)。
Go語言整型(整數(shù)類型)
在Go語言中整型分為平臺(tái)無關(guān)整型及平臺(tái)相關(guān)整型,區(qū)別主要就在,這些整數(shù)類型在不同CPU 架構(gòu)或操作系統(tǒng)下面,它們的長度是否是一致的。
平臺(tái)無關(guān)整型
而無關(guān)整型又區(qū)分了有符號(hào)整型和無符號(hào)整型,其表示的數(shù)據(jù)范圍是不一樣的。
平臺(tái)相關(guān)整型
Go原生提供了三個(gè)平臺(tái)相關(guān)整型,分別是int、uint 與 uintptr。
特別注意:在編寫有移植性要求的代碼時(shí),千萬不要強(qiáng)依賴這些類型的長度。
可以通過 unsafe 包提供的 SizeOf 函數(shù)來獲取三個(gè)整型在平臺(tái)上的長度。
func main() {
var a, b = int(5), uint(6)
var p uintptr = 0x12345678
fmt.Println("signed integer a's length is", unsafe.Sizeof(a))
fmt.Println("unsigned integer b's length is", unsafe.Sizeof(b))
fmt.Println("uintptr's length is", unsafe.Sizeof(p))
}
// 打印輸出
signed integer a's length is 8
unsigned integer b's length is 8
uintptr's length is 8
go提供了標(biāo)準(zhǔn)庫fmt包可以格式化輸出不同進(jìn)制的形式。
func main() {
var a int8 = 66
fmt.Printf("%b\n", a) //輸出二進(jìn)制:1000010
fmt.Printf("%d\n", a) //輸出十進(jìn)制:66
fmt.Printf("%o\n", a) //輸出八進(jìn)制:102
fmt.Printf("%O\n", a) //輸出八進(jìn)制(帶0o前綴):0o102
fmt.Printf("%x\n", a) //輸出十六進(jìn)制(小寫):42
fmt.Printf("%X\n", a) //輸出十六進(jìn)制(大寫):42
}
Go語言浮點(diǎn)類型(小數(shù)類型)
Go語言提供了float32與float64 兩種浮點(diǎn)類型,它們分別對(duì)應(yīng)的就是IEEE754中的單精度與雙精度浮點(diǎn)數(shù)值類型, 這基本上對(duì)應(yīng)于Java中的float和double類型。
Go語言對(duì)浮點(diǎn)類型的表示提供了兩種方式, 十進(jìn)制類型及科學(xué)計(jì)數(shù)法; 而其中科學(xué)計(jì)數(shù)法又分為十進(jìn)制和十六進(jìn)制兩種表示方法。
十進(jìn)制表示法
3.1415
.15 // 整數(shù)部分如果為0,整數(shù)部分可以省略不寫
81.80
82. // 小數(shù)部分如果為0,小數(shù)點(diǎn)后的0可以省略不寫
科學(xué)計(jì)數(shù)法
十進(jìn)制表示法:
6674.28e-2 // 6674.28 * 10^(-2) = 66.742800
.12345E+5 // 0.12345 * 10^5 = 12345.000000
十六進(jìn)制表示法:
0x2.p10 // 2.0 * 2^10 = 2048.000000
0x1.Fp+0 // 1.9375 * 2^0 = 1.937500
格式化輸出
var f float64 = 112.676899
// 浮點(diǎn)類型第一種:十進(jìn)制表示法
fmt.Printf("%f\n", f) // 112.676899
// 浮點(diǎn)類型第二種:科學(xué)計(jì)數(shù)法--十進(jìn)制表示法
fmt.Printf("%e\n", f) // 1.126769e+02
// 浮點(diǎn)類型第二種:科學(xué)計(jì)數(shù)法--十六進(jìn)制表示法
fmt.Printf("%x\n", f) // 0x1.c2b52502eec7dp+06
Go語言復(fù)數(shù)
Go 提供兩種復(fù)數(shù)類型,它們分別是 complex64 和 complex128,complex64 的實(shí)部與虛部都是 float32 類型,而 complex128 的實(shí)部與虛部都是 float64 類型。如果一個(gè)復(fù)數(shù)沒有顯示賦予類型,那么它的默認(rèn)類型為 complex128。
Go提供了三種表示方法:
1、使用復(fù)數(shù)字面值直接初始化一個(gè)復(fù)數(shù)類型變量
var c = 5 + 7i
var d = 0o123 + .12345E+5i // 83+12345i
2、使用Go提供的complex函數(shù),創(chuàng)建一個(gè)complex128類型值
var c = complex(5, 6) // 5 + 6i
var d = complex(0o123, .12345E+5) // 83+12345i
3、使用Go提供的預(yù)定義的函數(shù)real和imag,可以獲取一個(gè)復(fù)數(shù)的實(shí)部與虛部,返回值為一個(gè)浮點(diǎn)類型
var c = complex(5, 6) // 5 + 6i
r := real(c) // 5.000000
i := imag(c) // 6.000000
擴(kuò)展知識(shí):自定義數(shù)值類型
可以通過Go語言提供的type關(guān)鍵字基于原生數(shù)值類型來聲明一個(gè)新類型。
比如,
type NewInt int32
NewInt是我們新定義的類型,底層是int32類型,但是和原生類型int32卻是兩種類型,無法直接進(jìn)行賦值,需要進(jìn)行顯示轉(zhuǎn)換才可以。
type NewInt int32
var m int = 5
var n int32 = 6
var a NewInt = NewInt(m) // ok
var b NewInt = NewInt(n) // ok
當(dāng)然如果想要能夠直接與原生類型直接賦值使用,Go提供了類型別名(Type Alias)語法來自定義數(shù)值類型。
type NewInt = int32
var m int32 = 5
var n NewInt = m
以上就是關(guān)于“Go中的數(shù)值類型有哪些”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)頁標(biāo)題:Go中的數(shù)值類型有哪些
文章地址:http://vcdvsql.cn/article0/pdppoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、響應(yīng)式網(wǎng)站、網(wǎng)站改版、軟件開發(fā)、網(wǎng)站維護(hù)、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)