0
点赞
收藏
分享

微信扫一扫

Go教程(二)类型转换

陈情雅雅 2022-03-20 阅读 40
golang

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{}与其他类型之间的转换

转换方式包括隐式转换类型断言转换。

  1. 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,接口断言成功以后,可以调用断言类型本身的其他方法
  1. 具体类型可以隐式转换成interface{}类型

三 string与[]byte之间的转换

string到[]byte:字节数组=[]byte(字符串)

字节数组到string: 字符串=string([]byte)

举报

相关推荐

0 条评论