久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

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

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

 

1. 定長類型

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

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

 

2. 不定長類型

在 Go 語言中也實現了隨著平臺位數變化而變化的數據類型int。一般來說,這個類型在32位的系統中長度和int32一致,在64位的系統中長度和int64一致。

代碼塊
  • 1? package main
  • 2
  • 3? import (
  • 4? ? ? "fmt"
  • 5? ? ? "math"
  • 6? )
  • 7
  • 8? func main() {
  • 9? ? ? ? var num int
  • 10? ? ? num = math.MaxInt64//將e賦予int64的最大值:9223372036854775807
  • 11? ? ? fmt.Println(num)
  • 12? }

在 64 位操作系統環境中執行結果:

圖片描述
64 位操作系統執行結果

在 32位 操作系統環境中,因為int的長度與int32相等了,只有32位,所以執行會報超出取值范圍的錯誤:

圖片描述
32 位操作系統執行結果

 

3. 各類型的互相轉換

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

代碼塊
  • 1? package main
  • 2
  • 3? import (
  • 4? ? ? "fmt"
  • 5? ? ? "math"
  • 6 ?)
  • 7
  • 8? func main() {
  • 9? ? ? ? var a int8 = math.MaxInt8
  • 10? ? ? var b int16 = math.MaxInt8 + 1
  • 11? ? ? fmt.Println(a, b)
  • 12
  • 13? ? ? a = int8(b)
  • 14? ? ? fmt.Println(a, b) //因為b長度過長,在轉換為int8的過程中溢出了
  • 15
  • 16? ? ? //整型變量可以和常數進行計算
  • 17? ? ? a = a + 1
  • 18? ? ? b = b + 1
  • 19? ? ? fmt.Println(a, b)
  • 20
  • 21? ? ? //不同類型的整型變量計算必須強轉為相同類型,一般轉換為長度大的來計算
  • 22? ? ? c := int16(a) + b
  • 23? ? ? fmt.Println(c)
  • 24 ?}

輸出結果:

圖片描述
各類型互相轉換輸出結果

 

3. 小結

這一小節中我們主要介紹了有符號整形數據類型,整形數據類型根據可以存儲的數據長度分為了:?int8?、?int16?、?int32?、?int64?,我們在使用的時候要根據條件需求來決定變量的數據類型,同時也要注意高精度向低精度轉失真的風險。

文章來源于網絡,侵刪!

相關新聞

歷經多年發展,已成為國內好評如潮的Linux云計算運維、SRE、Devops、網絡安全、云原生、Go、Python開發專業人才培訓機構!

    1. 主站蜘蛛池模板: 富民县| 团风县| 德令哈市| 积石山| 宜兰市| 九江县| 栾川县| 齐河县| 焦作市| 建平县| 晋城| 雷波县| 明溪县| 玉门市| 石首市| 香河县| 湖南省| 疏勒县| 泰州市| 牟定县| 尼勒克县| 彭泽县| 洛宁县| 衡阳市| 中方县| 石棉县| 拜城县| 图木舒克市| 钦州市| 房产| 化隆| 三亚市| 偏关县| 延边| 芦山县| 教育| 定州市| 富裕县| 平潭县| 三台县| 阜城县|