Go语言基础之数据类型转换
2023-09-14 08:57:47 时间
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
结束!
相关文章
- 化整为零优化重用,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang函数的定义和使用EP07
- 「Go工具箱」go语言csrf库的使用方式和实现原理
- Go语言基础速刷手册
- 「Go工具箱」推荐一个变量调试神器:go-spew
- Go语言学习笔记2一 Golang的基础2
- Go 模块 verifying xxx/go.mod: checksum mismatch 问题处理
- Go-包管理-go get(二)
- Go-包管理-go build(一)
- Go-包管理-go install
- go基础之–函数和map详解编程语言
- 简易教程:如何在 Linux 上安装 GO 语言(go语言安装linux)
- Go语言环境配置:在 Linux 下实现(go环境搭建linux)
- 以Go语言操作MySQL:轻松运行数据库各种查询(go语言mysql)
- SQL Server快速上手GO!(sqlserver go)
- 用Go语言深入Redis缓存技术(用go写redis)
- 数据库探索Go语言与Oracle数据库的结合(go语言中的oracle)
- 数据库Go语言实现监控Oracle数据库(go监听oracle)
- 快跟上趋势,GO DB ORACLE(go db oracle)
- 语言Oracle中发挥神奇作用的Go语言(oracle中有go)