Go語言,以其簡潔的語法和強大的性能,已經成為現代軟件開發領域中的重要力量。在Go語言的豐富特性中,基本數據類型扮演著至關重要的角色。它們是構建復雜程序的基礎,是每一個Go程序的起點。正如學習任何新語言一樣,了解其字母表(ABC)是掌握語言的關鍵第一步。在Go語言中,這意味著要熟悉其提供的基本數據類型。
Go語言的基本數據類型可以分為以下幾個類別:
定義int類型
var int1 = 1fmt.Printf("int1類型:%T/n", int1)
輸出結果:
int1類型:int
注意:%T 查看變量的類型
var i1 = 101fmt.Printf("%d/n", i1) //轉成十進制fmt.Printf("%b/n", i1) //把十進制轉成二級制fmt.Printf("%o/n", i1) //把十進制轉成八進制fmt.Printf("%x/n", i1) //把十進制轉成十六進制fmt.Println("-----")
輸出結果:
數值為:101把十進制轉成二級制:1100101把十進制轉成八進制:145把十進制轉成十六進制:65
八進制一定是以0開頭的,逢八進一位
i2 := 077fmt.Printf("i2十進制:%d/n", i2)fmt.Printf("i2八進制:%o/n", i2)fmt.Printf("i2類型%T/n",i2)
輸出結果
i2十進制:63i2八進制:77i2類型int
從0到f,逢十六進一
i3 := 0x1234567fmt.Printf("i3十進制:%d/n", i3)fmt.Printf("i3十流進制:%x/n", i3)// %T 查看變量的類型fmt.Printf("i3十進制數據類型:%T/n", i3)
輸出結果
i3十進制:19088743i3十六進制:1234567i3十進制數據類型:int
總結:我們發現直接定義十進制、八進制、十六進制的變量,變量的類型都是int型。
我們怎么定義int8/int16/int32/int64類型的數據呢?
其實非常簡單:
i4 := int8(1)i5 := int16(1)i6 := int32(1)i7 := int64(1)fmt.Printf("i4:%T/n", i4)fmt.Printf("i5:%T/n",i5)fmt.Printf("i6:%T/n",i6)fmt.Printf("i7:%T/n",i7)
輸出結果:
i4:int8i5:int16i6:int32i7:int64
拋出問題:go有這么多種int類型,我們怎么選擇使用哪種呢?
給出答案:
我們首先要知道這些類型的區別:
其中int類型要重點說一下:go語言中的 int 的大小是和操作系統位數相關的,如果是32位操作系統,int 類型的大小就是4字節。如果是64位操作系統,int 類型的大小就是8個字節。
由此我們可以知道,根據自己需要的字節數來選擇,當然選擇int類型是最省心安全的,但是當我們取值范圍小的時候,會浪費存儲空間。
go中的float可以細分為:float32和float64
f1 := 1.0fmt.Printf("f1類型:%T/n", f1) // Go語言中的小數默認類型是:float64
輸出結果:
f1類型:float64
分析:在未指定類型定義float時,默認的類型是float64。和int類型的定義是一致的。
反思:這種設計我們也可以很好理解,出于數據安全的考慮,設置數據類型對應的最大內存空間的類型,避免內存溢出等問題。
聰明的你一定會想到,和定義int8是一樣的
f2 := float32(1.4321)fmt.Printf("%T/n", f2)
輸出結果:
f2類型:float32
我們可以通過內置的Math函數,獲得常用的數值,比如:
var maxFloat = math.MaxFloat32;println(maxFloat)
輸出結果:
+3.402823e+038
在go中,數據類型是有嚴格的區分的,不同類型之間是不能互相轉換的,比如:
轉載本文請聯系「王中陽Go」公眾號。
本文鏈接:http://www.tebozhan.com/showinfo-26-93088-0.html掌握Go語言的基本數據類型:編程世界的ABC
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com