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[:]
其他
//string转int valueInt,err:=strconv.Atoi(string) //int到string str:=strconv.Itoa(valueInt) //string转int64 valueInt64, err := strconv.ParseInt(string, 10, 64)
headerParam := make(map[string][]string)
json.Unmarshal([]byte(taskmapx["headers"].(string)), &headerParam)
断言
data, ok := bodyMap["taskKey"] if ok { dataMap := data.(map[string]interface{}) innData := dataMap["data"] fmt.Println(innData) } start := bodyMap["start"].([]interface{})
数据类型说明
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不是相同的类型,即使它们可能在特定架构上具有相同的大小。
感谢https://www.cnblogs.com/kumata/p/10158475.html
结束!