亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長(zhǎng)資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    Go中數(shù)值類型有幾種

    Go中數(shù)值類型有3種:1、整數(shù)類型,可分為平臺(tái)無關(guān)整型及平臺(tái)相關(guān)整型,區(qū)別是在不同CPU架構(gòu)或操作系統(tǒng)下長(zhǎ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ù)值類型有幾種

    本教程操作環(huán)境:windows7系統(tǒng)、GO 1.18版本、Dell G3電腦。

    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)下面,它們的長(zhǎng)度是否是一致的。

    平臺(tái)無關(guān)整型

    而無關(guān)整型又區(qū)分了有符號(hào)整型和無符號(hào)整型,其表示的數(shù)據(jù)范圍是不一樣的。

    Go中數(shù)值類型有幾種

    平臺(tái)相關(guān)整型

    Go原生提供了三個(gè)平臺(tái)相關(guān)整型,分別是int、uint 與 uintptr。

    Go中數(shù)值類型有幾種

    特別注意:在編寫有移植性要求的代碼時(shí),千萬不要強(qiáng)依賴這些類型的長(zhǎng)度。

    可以通過 unsafe 包提供的 SizeOf 函數(shù)來獲取三個(gè)整型在平臺(tái)上的長(zhǎng)度。

    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
    登錄后復(fù)制

    格式化輸出

    go提供了標(biāo)準(zhǔn)庫(kù)fmt包可以格式化輸出不同進(jìn)制的形式。

    func main() { 	var a int8 = 66 	fmt.Printf("%bn", a) //輸出二進(jìn)制:1000010 	fmt.Printf("%dn", a) //輸出十進(jìn)制:66 	fmt.Printf("%on", a) //輸出八進(jìn)制:102 	fmt.Printf("%On", a) //輸出八進(jìn)制(帶0o前綴):0o102 	fmt.Printf("%xn", a) //輸出十六進(jìn)制(小寫):42 	fmt.Printf("%Xn", a) //輸出十六進(jìn)制(大寫):42 }
    登錄后復(fù)制

    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可以省略不寫
    登錄后復(fù)制

    科學(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
    登錄后復(fù)制

    格式化輸出

    var f float64 = 112.676899 	// 浮點(diǎn)類型第一種:十進(jìn)制表示法 	fmt.Printf("%fn", f) // 112.676899 	// 浮點(diǎn)類型第二種:科學(xué)計(jì)數(shù)法--十進(jìn)制表示法 	fmt.Printf("%en", f) // 1.126769e+02 	// 浮點(diǎn)類型第二種:科學(xué)計(jì)數(shù)法--十六進(jìn)制表示法 	fmt.Printf("%xn", f) // 0x1.c2b52502eec7dp+06
    登錄后復(fù)制

    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
    登錄后復(fù)制

    2、使用Go提供的complex函數(shù),創(chuàng)建一個(gè)complex128類型值

    var c = complex(5, 6) // 5 + 6i var d = complex(0o123, .12345E+5) // 83+12345i
    登錄后復(fù)制

    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
    登錄后復(fù)制

    擴(kuò)展知識(shí):自定義數(shù)值類型

    可以通過Go語言提供的type關(guān)鍵字基于原生數(shù)值類型來聲明一個(gè)新類型。

    比如,

    type NewInt int32
    登錄后復(fù)制

    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
    登錄后復(fù)制

    當(dāng)然如果想要能夠直接與原生類型直接賦值使用,Go提供了類型別名(Type Alias)語法來自定義數(shù)值類型。

    type NewInt = int32  	var m int32 = 5 	var n NewInt = m
    登錄后復(fù)制

    總結(jié)

    Go 的原生數(shù)值類型有三類:整型、浮點(diǎn)型和復(fù)數(shù)型, 通過上面的簡(jiǎn)單介紹我們可以知道Go與大多數(shù)主流語言基本查不多,當(dāng)然Go也有不一樣的, 比如其原生支持復(fù)數(shù)類型。

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)