第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開發(fā)者教程

Go 語言的整型(int)數(shù)據(jù)類型

還記得我們之前在第 7 小節(jié)和第 8 小節(jié)中提到的變量數(shù)據(jù)類型的概念嗎?從這個小節(jié)開始到后面的幾個小節(jié)中我們都會進行對 Go 語言中的數(shù)據(jù)類型相關(guān)知識點進行講解,本節(jié)課我們主要講解一下 Go 語言中處理帶符號的整數(shù)的數(shù)據(jù)類型。

1. 定長類型

在 Go 語言中整形數(shù)據(jù)類型被細(xì)致地劃分為了下面幾種,根據(jù)可以存儲數(shù)據(jù)的長度分為:

序號 類型 長度
1 int8 -128~127
2 int16 -32768~32767
3 int32 -2147483648~2147483647
4 int64 -9223372036854775808~9223372036854775807

2. 不定長類型

在 Go 語言中也實現(xiàn)了隨著平臺位數(shù)變化而變化的數(shù)據(jù)類型int。一般來說,這個類型在32位的系統(tǒng)中長度和int32一致,在64位的系統(tǒng)中長度和int64一致。

package main

import (
    "fmt"
    "math"
)

func main() {
    var num int
    num = math.MaxInt64//將e賦予int64的最大值:9223372036854775807
    fmt.Println(num)
}

在 64 位操作系統(tǒng)環(huán)境中執(zhí)行結(jié)果:

圖片描述

64 位操作系統(tǒng)執(zhí)行結(jié)果

在 32位 操作系統(tǒng)環(huán)境中,因為int的長度與int32相等了,只有32位,所以執(zhí)行會報超出取值范圍的錯誤:

圖片描述

32 位操作系統(tǒng)執(zhí)行結(jié)果

3. 各類型的互相轉(zhuǎn)換

Go 語言是強類型語言,各個雖然同是整型,但是不同整型的變量不允許直接賦值,需要進行強制類型轉(zhuǎn)換,同時長度大的整型向長度小的整型轉(zhuǎn)換時,要考慮溢出問題。而且不同類的整型無法進行運算,想要進行運算必須要進行強制類型轉(zhuǎn)換,使他們都變成同一類型之后,再運算。舉一個int8int16類型的變量賦值與計算的例子:

package main

import (
    "fmt"
    "math"
)

func main() {
    var a int8 = math.MaxInt8
    var b int16 = math.MaxInt8 + 1
    fmt.Println(a, b)

    a = int8(b)
    fmt.Println(a, b) //因為b長度過長,在轉(zhuǎn)換為int8的過程中溢出了

    //整型變量可以和常數(shù)進行計算
    a = a + 1
    b = b + 1
    fmt.Println(a, b)

    //不同類型的整型變量計算必須強轉(zhuǎn)為相同類型,一般轉(zhuǎn)換為長度大的來計算
    c := int16(a) + b
    fmt.Println(c)
}

輸出結(jié)果:

圖片描述

各類型互相轉(zhuǎn)換輸出結(jié)果

3. 小結(jié)

這一小節(jié)中我們主要介紹了有符號整形數(shù)據(jù)類型,整形數(shù)據(jù)類型根據(jù)可以存儲的數(shù)據(jù)長度分為了: int8 、 int16int32 、 int64 ,我們在使用的時候要根據(jù)條件需求來決定變量的數(shù)據(jù)類型,同時也要注意高精度向低精度轉(zhuǎn)失真的風(fēng)險。