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

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

  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)

以上是关于Go教程类型转换的主要内容,如果未能解决你的问题,请参考以下文章

Go入门教程

运维Go - python系列教程(持续更新)

Go+ 数字解析教程(4.11)

Go tour

go判断interface类型及类型转换

Go语言类型转换