Golang数据类型总结及其转换
golang数据类型
- 基本类型:boolean,numeric,string类型的命名实例是预先声明的。
- 复合类型:array,struct,指针,function,interface,slice,map,channel类型(可以使用type构造)。
数据类型转换表
// []byte -> other type []byte => string : string([]byte) []byte => int : binary包处理, 查看下面 // int -> other type int => string : s = strconv.Itoa(i) int => int32 : i32 = int32(num) int => int64 : i64 = int64(num) int64/int32 => int : i = int(num) int64 => string : strconv.FormatInt(int64, 10) int64 => time.Duration : time.Duration(int64) int32 => byte : bytes.NewBuffer() 看上面 int 和 byte 互转 int => float64 : float64(num) // other type -> int i = int(int32/int64) float64/float32 => int(int64/int32) // string -> other type string => int : i, err = strconv.Atoi(s) string => bool : strconv.ParseBool("true") string => float32 : strconv.ParseFloat(s, 32) string => float64 : strconv.ParseFloat(s, 64) string => uint : strconv.ParseUint() string => int32/int64 : strconv.ParseInt(s, 10, 32/64) string => []byte : []byte(string) string(16进制) => int32/int64 : strconv.ParseInt(s, 0, 32/64) // other type -> string int,int32,int64 => string : str1 := fmt.Sprintf("%d", i) // i可以是int/int32/int64 或 str2 := strconv.Itoa(i) // i为int 或 str3 := strconv.FormatInt(int64(i), 10) // i可以是int/int32/int64 uint64 => string : strconv.FormatUint(unit64, 10) bool => string : strconv.FormatBool(true) float64 => string : strconv.FormatFloat(float64(12), 'f', -1, 64) 或 fmt.Sprintf("%.2f", float64) // array -> slice : 1) copy(array[:], slice[0:4]) | 全部 copy(array[:], slice) 2) for for index, b := range someSlice { array[index] = b } // slice -> array slice=>array : array[:]
数据类型说明
1. int类型中哪些支持负数
- 有符号(负号):int8 int16 int32 int64
- 无符号(负号):uint8 uint16 uint32 uint64
2. 浮点类型的值有float32和float64(没有 float 类型)
3. byte和rune特殊类型是别名
- byte就是unit8的别名
- rune就是int32的别名
4. int和uint取决于操作系统(32位机器上就是32字节,64位机器上就是64字节)
- uint是32字节或者64字节
- int和uint是一样的大小
5. 为了避免可移植性问题,除了byte(它是uint8的别名)和rune(它是int32的别名)之外,所有数字类型都是不同的。 在表达式或赋值中混合使用不同的数字类型时,需要转换。例如,int32和int不是相同的类型,即使它们可能在特定架构上具有相同的大小。
笔记参考:GO基本数据类型总结
Github地址:https://github.com/kumataahh