golang數據類型與轉換
阿新 • • 發佈:2019-03-06
不可變 存儲與讀取 類型 32位 替代 utf 32位系統 二進制 進制
2、float64 占用8個字節(雙精度) 範圍 (-1798E308~1.798E308) float64精度高於float32
一、數值型int(默認值 0)
int 整數 32位系統占4個字節(-2^31~2^31-1)、64位系統占8個字節(-2^63~2^63-1)
uint 32位系統占4個字節(0~2^32-1)、64位系統占8個字節(0-2^64-1)
rune 範圍(-2^31~2^31-1) 等價int32,表示一個Unicode碼
byte 範圍(0~255),當要存儲字符時選用byte
1、int的有符號類型
int8 | 有符號 8 位整型 (-128 到 127) |
int16 | 有符號 16 位整型 (-32768 到 32767) |
int32 | 有符號 32 位整型 (-2147483648 到 2147483647) |
int64 | 有符號 64 位整型 (-9223372036854775808 到 9223372036854775807) |
2、int的無符號類型
uint8 | 無符號 8 位整型 (0 到 255) |
uint16 | 無符號 16 位整型 (0 到 65535) |
uint32 | 無符號 32 位整型 (0 到 4294967295) |
uint64 | 無符號 64 位整型 (0 到 18446744073709551615) |
二、浮點型float(默認值 0)
1、float32 占用4個字節(單精度) 範圍(-3.403E38~3.403E38)
三、字符型(默認值 "")
字符型存儲與讀取方式
存儲:字符->對應碼值->二進制->存儲
讀取:二進制->碼值->字符->讀取
如:
var x byte = ‘a‘ var y int = ‘夠‘ //utf-8編碼Unicode編碼10進制結果 fmt.Println(x,y) 結果: 97 22815 賦值字符和int的運算 var x = 10 + ‘a‘ fmt.Println(x) 結果: 107
四、布爾值bool(占用一個字節)(默認值 false)
golang不可以用0或非0來替代false和true
1、true 真
2、false 假
五、字符串string(默認值 "")
在go中字符串一旦賦值,字符串就不可變
"" 雙引號擴起來的字符串能識別轉義符號
`` 反引號不識別轉義符號,把字符串原生形式輸出
字符串拼接方式
如:
var x = "hello" + "world" 多個換行相加 var y = "hello" + "world" + "xxx" + "yyy"
六、golang字符類型相互轉換
1、int與float之間轉換
var x int = 10 var a1 float32 = float32(x) fmt.Printf("Type: %T Value: %v\n", x, x) fmt.Printf("Type: %T Value: %v\n", a1, a1) 結果: Type: int Value: 10 Type: float32 Value: 10
2、string與int轉換
方式一、使用fmt.Sprintf 轉換
var x int = 10 var str string str = fmt.Sprintf("%d",x) fmt.Printf("Type: %T Value: %v\n", str, str) 結果: Type: string Value: 10
方式二、使用strconv
golang數據類型與轉換