go 語言數據類型以及整型
數據類型介紹
在 Go 語言中,數據類型定義了變量可以存儲的數據種類。每個變量都有明確的數據類型,這決定了變量所占用的內存大小、能存儲的數據范圍以及可以對其進行哪些操作。Go 的數據類型主要分為內置(基本)數據類型和復合(派生)數據類型兩大類。
基本數據類型:
數值型:
整數型基本數據類型復雜數據類型
: (int,int8,int16,int32,int64,uint,uint8,uint16uint32,uint64,byte))
浮點型:(float32,float64)
字符型:(沒有單獨的字符型,使用byte來保存單個字母字符)
布爾型:(bool)
字符串:(string)
整數類型(int,int8,int16,int32,int64,uint,uint8,uint16uint32,uint64,byte)
浮點類型float32(,float64): 底層存儲空間與操作系統無關,會丟失精度,底層存儲分別有符號位和指數位,尾數位尾數位只存一個大概。可能出現精度損失
派生數據類型:
指針
數組
結構體
管道
函數
切片
接口
map
一、內置數據類型
1. 布爾類型
- bool
- 只有兩個值:
true和false - 示例:
- 只有兩個值:
2. 數值類型
數值類型又分為整數、浮點數和復數。
2.1 整數類型
-
有符號整數:
int,int8,int16,int32,int64int的大小取決于平臺(32 位系統通常為 32 位,64 位系統通常為 64 位)。- 示例:
-
var a int = -10 var b int8 = 100
無符號整數:uint, uint8, uint16, uint32, uint64, uintptr
- 無符號整數只能表示非負數。
var u uint = 10 var u8 uint8 = 255
2.2 浮點數類型
- 浮點數:
float32和float64float64是默認的浮點數類型,精度更高。
var pi float64 = 3.1415926535
2.3 復數類型
- 復數:
complex64和complex128- 復數由實部和虛部組成,例如:
var c complex128 = complex(1.2, 3.4) fmt.Println(c) // 輸出 (1.2+3.4i)
3. 字符串類型
- string
- 字符串是不可變的 Unicode 字符序列
var s string = "Hello, Go!"
整數介紹
在 Go 語言中,整數類型用于表示沒有小數部分的數值。Go 提供了多種整數類型,主要分為有符號整數和無符號整數兩大類。下面詳細介紹這些類型:
有符號整數
這些類型可以表示正數、負數和零。
-
int8
- 占用 1 個字節
- 范圍:-128 ~ 127
-
int16
- 占用 2 個字節
- 范圍:-32,768 ~ 32,767
-
int32
- 占用 4 個字節
- 范圍:-2,147,483,648 ~ 2,147,483,647
- 在 Go 中,
int32也常用來表示 Unicode 字符(即 rune 類型)。
-
int64
- 占用 8 個字節
- 范圍:-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
-
int
- 根據不同平臺,其大小可能是 32 位或 64 位
- 通常在 64 位系統上與
int64相同,在 32 位系統上與int32相同 - 常用作默認整數類型
無符號整數
這些類型只表示非負數。
-
uint8
- 占用 1 個字節
- 范圍:0 ~ 255
- 也稱為 byte 類型
-
uint16
- 占用 2 個字節
- 范圍:0 ~ 65,535
-
uint32
- 占用 4 個字節
- 范圍:0 ~ 4,294,967,295
-
uint64
- 占用 8 個字節
- 范圍:0 ~ 18,446,744,073,709,551,615
-
uint
- 根據平臺不同,其大小可能為 32 位或 64 位
- 用法與
int類似,但只用于非負數
-
uintptr
- 用于存儲指針地址的無符號整數類型
示例代碼
以下示例展示了不同整數類型的聲明和使用:
package main import ( "fmt" ) func main() { // 有符號整數示例 var a int = -100 // 默認 int 類型 var b int8 = 127 // int8 最大值 var c int16 = -30000 // int16 示例 var d int32 = 2147483647 // int32 最大值 var e int64 = -9223372036854775808 // int64 最小值 // 無符號整數示例 var f uint = 100 // 默認 uint 類型 var g uint8 = 255 // uint8 最大值 var h uint16 = 65000 // uint16 示例 var i uint32 = 4294967295 // uint32 最大值 var j uint64 = 18446744073709551615 // uint64 最大值 fmt.Println("有符號整數:") fmt.Println("a (int):", a) fmt.Println("b (int8):", b) fmt.Println("c (int16):", c) fmt.Println("d (int32):", d) fmt.Println("e (int64):", e) fmt.Println("\n無符號整數:") fmt.Println("f (uint):", f) fmt.Println("g (uint8):", g) fmt.Println("h (uint16):", h) fmt.Println("i (uint32):", i) fmt.Println("j (uint64):", j) } 執行結果 PS D:\golang\goproject> go run src\尚硅谷\chget1\deay1\demo1\main4.go 有符號整數: a (int): -100 b (int8): 127 c (int16): -30000 d (int32): 2147483647 e (int64): -9223372036854775808 無符號整數: f (uint): 100 g (uint8): 255 h (uint16): 65000 i (uint32): 4294967295 j (uint64): 18446744073709551615
小結
- 整數類型在 Go 語言中是基本數據類型,用于存儲整數值。
- 有符號整數(如 int、int8、int16、int32、int64)可以表示正數、負數和零。
- 無符號整數(如 uint、uint8、uint16、uint32、uint64)只表示非負數。
- 選擇合適的整數類型可以幫助你節省內存和確保數值范圍正確,通常在不需要特別小數值范圍時,直接使用默認的
int或uint類型即可。
查看一個變量的類型
package main import "fmt" func main(){ w := 8 fmt.Printf("w的類型%T",w) } 執行結果 PS D:\golang\goproject> go run src\尚硅谷\chget1\deay1\demo1\main5.go w的類型int
如何查看變量占用字節大小,以及數據類型
package main import ( "fmt" "unsafe" ) func main(){ w := 8 fmt.Printf("w的類型%T\n",w) //unsafe.Sizeof(w)是unsafe包的一個函數可以返回w變量占用的字節數 fmt.Printf("w的類型%T w占用字節數%d", w, unsafe.Sizeof(w)) } 執行結果 PS D:\golang\goproject> go run src\尚硅谷\chget1\deay1\demo1\main5.go w的類型int w的類型int w占用字節數8

浙公網安備 33010602011771號