3.15
1、int8,int16,int32,int64有什么區(qū)別
int后面的數(shù)字代表這個數(shù)據(jù)類型占據(jù)的空間,8就占據(jù)1個在字節(jié),相當于數(shù)據(jù)類型是(Byte),16占據(jù)2個字節(jié)(short),32占據(jù)4個字節(jié)(int),64占據(jù)8個字節(jié)(long)
在 Go 語言中,int8
、int16
、int32
和 int64
是整數(shù)類型,這些類型的數(shù)值范圍如下:
int8
:有符號 8 位整數(shù),范圍為-128
到127
。int16
:有符號 16 位整數(shù),范圍為-32768
到32767
。int32
:有符號 32 位整數(shù),范圍為-2147483648
到2147483647
。int64
:有符號 64 位整數(shù),范圍為-9223372036854775808
到9223372036854775807(小于unit64,63位,有符號)
。
需要注意的是,這些類型的大小和范圍在不同的計算機體系結構和編譯器中可能會有所不同。因此,編寫可移植的代碼時,需要根據(jù)特定的情況進行相應的調(diào)整。
Go 語言還提供了對應的無符號整數(shù)類型
uint8:?
0
?到?255
uint16:
0
?到?65535
uint32
?:0
?到?4294967295
?
uint64
,?0
?到?18446744073709551615(大,64位,無符號)
拓展:
存儲:信息的存儲單位有位,字節(jié),和字
位:bit
字節(jié):每8位(bit)一個Byte,計算機中存儲,和處理至少需要一個字節(jié)
字:1個字2個字節(jié),漢字的存儲單位是字
編碼:
ASCIIS碼:?1個英文字母(不分大小寫,含asclls碼)= 1個字節(jié)的空間
? 1個中文漢字 = 2個字節(jié)
UTF-8編碼:1個英文字符(含標點) = 1個字節(jié)
? ? ? ? ? ? ? ? ? ? ?1個中文(含繁體,標點) = 3個字節(jié)
Unicode編碼:1個英文字符 = 2個字節(jié)
? ? ? ? ? ? ? ? ? ? ? 英文標點 ?= 2個字節(jié)
? ? ? ? ? ? ? ? ? ? ? 1個中文(含繁體,標點) = 2個字節(jié)
big.Int
類型的整數(shù)不能直接與 uint64
類型的整數(shù)進行計算和操作,big1
是一個 big.Int
類型的整數(shù),可以表示比 int64
類型更大的整數(shù)。big2
是 big1
轉換為 uint64
類型的整數(shù)。如果需要使用 big1
進行超出 int64
類型范圍的計算,就需要將其轉換為 uint64
類型的整數(shù)。
2、interface{}
類型相當于一個萬能類型,可以用來表示任意類型的值。因此,使用 []interface{}
類型的切片可以存儲任意類型的值,但是在使用這些值時需要進行類型斷言(type assertion)