Go教程类型转换
Posted 玖五二七
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go教程类型转换相关的知识,希望对你有一定的参考价值。
Go语言是静态强类型语言
go语言中的数学和比较运算必须是相同类型的变量,否则会报错。
为变量赋值也必须是相同类型的变量
length := 6.4
var width int = 2
length = width // 报错,赋值的左右两边类型不同
fmt.Println("area is", length * width) // 报错,运算的类型不同,一个是float64一个是int
解决方法是对类型进行转换
一 基本数据类型之间的转换
int,err:=strconv.Atoi(string) // string to int
int64, err := strconv.ParseInt(string, 10, 64) // string to int64
string := strconv.FormatInt(int64,10) // int64 to string
string := strconv.Itoa(int) // int to string
float32, err = strconv.ParseFloat(string, 32) // string to float32
float64,err = strconv.ParseFloat(string,64) // string to float64
int := int(int64) // int64 to int
int64 := int64(int) // int to int64
二 interface与其他类型之间的转换
转换方式包括隐式转换与类型断言转换。
-
interface类型转换成具体类型:
interfaceValue.(assertType)
接口值+.(断言类型 )
原理:断言实现。如:
value, ok := a.(string) // 类型断言
if !ok
fmt.Println("It's not ok for type string")
return
fmt.Println("The value is ", value)
断言成功返回true,失败返回false,接口断言成功以后,可以调用断言类型本身的其他方法
- 具体类型可以隐式转换成interface类型
三 string与[]byte之间的转换
string到[]byte:字节数组=[]byte(字符串)
字节数组到string: 字符串=string([]byte)
以上是关于Go教程类型转换的主要内容,如果未能解决你的问题,请参考以下文章