go数据类型转化
1、Go语言不存在隐式类型转换,所有的类型转换都必须显式的声明
2、valueOfTypeB = typeB(valueOfTypeA)(类型 B 的值 = 类型 B(类型 A 的值))
3、比如:a := 5.0 b := int(a)
4、只有相同底层类型的变量之间可以进行相互转换(如将 int16 类型转换成 int32 类型),不同底层类型的变量相互转换时会引发编译错误(如将 bool 类型转换为 int 类型):
5、String与int之间转换:
- Itoa() 函数用于将 int 类型数据转换为对应的字符串类型 func Itoa(i int) string
 - Atoi() 函数用于将字符串类型的整数转换为 int 类型 func Atoi(s string) (i int, err error)
 
6、parse 解析 : Parse 系列函数用于将字符串转换为指定类型的值,其中包括 ParseBool()、ParseFloat()、ParseInt()、ParseUint()。
- ParseBool() 函数用于将字符串转换为 bool 类型的值,它只能接受 1、0、t、f、T、F、true、false、True、False、TRUE、FALSE,其它的值均返回错误:func ParseBool(str string) (value bool, err error)
changBool, err := strconv.ParseBool("1") if err == nil { fmt.Printf("str1: %v\n", err) } //字符串转化为bool型 fmt.Printf("type:%T value:%#v\n", changBool, changBool) - ParseInt() 函数用于返回字符串表示的整数值(可以包含正负号) ParseUint() 函数的功能类似于 ParseInt() 函数,但 ParseUint() 函数不接受正负号,用于无符号整型
//base 指定进制,取值范围是 2 到 36。如果 base 为 0,则会从字符串前置判断,“0x”是 16 进制,“0”是 8 进制,否则是 10 进制。 //bitSize 指定结果必须能无溢出赋值的整数类型,0、8、16、32、64 分别代表 int、int8、int16、int32、int64。 //返回的 err 是 *NumErr 类型的,如果语法有误,err.Error = ErrSyntax,如果结果超出类型范围 err.Error = ErrRange //转化为整数ParseInt() changeInt, err := strconv.ParseInt("-11", 10, 0) fmt.Printf("%#v\n", changeInt) changeUint, err := strconv.ParseUint("10", 10, 0) if err == nil { printf("err:%v\n", err) } fmt.Printf("value:%v\n", changeUint) - ParseFloat() 函数用于将一个表示浮点数的字符串转换为 float 类型 func ParseFloat(s string, bitSize int) (f float64, err error)
 
7、format 格式: Format 系列函数实现了将给定类型数据格式化为字符串类型的功能,其中包括 FormatBool()、FormatInt()、FormatUint()、FormatFloat()。
8、append 附加 Append 系列函数用于将指定类型转换成字符串后追加到一个切片中,其中包含 AppendBool()、AppendFloat()、AppendInt()、AppendUint()。
// 将转换为10进制的string,追加到slice中
	b10 = strconv.AppendInt(b10, -42, 10)
	fmt.Println(string(b10))
	b16 := []byte("int (base 16):")
	b16 = strconv.AppendInt(b16, -42, 16)
	fmt.Println(string(b16))
posted on 2020-01-07 10:38 HelloOcean 阅读(759) 评论(0) 收藏 举报
                    
                
                
            
        
浙公网安备 33010602011771号