跳转至

17 golang 基础语法之类型转换

golang类型转换

类型转换是将一种类型转换成另一种类型的变量

基本格式如下

type_name(expression)
  • type_name: 类型
  • expression : 表达式

数值类型转换

1、整数转换成符点数

var a int = 10
var b float64 = float64(a)

2、字符串类型转换

var str string = 10

var num int

num, _ = strconv.Atoi(str)

将字符串转换成整数

strconv.Atoi 有两个返回值 一个是返回转换后的整形值, 第二个是可能发生的错误, 我们使用_来忽略错误

3、整数转换成字符串

str := strconv.Itoc(10)

4、 符点数转换成字符串

str := strconv.FormatFloat(3.14, 'f', 2, 64)

5、 接口类型转换

接口类型转换有两种: 类型断言 和类型转换

类型断言用于将接口类型转换成指定类型, 其语法为:

value.(type)
 或者
value.(T)

其中 value 是接口类型的变量, type 和 T 是需要转换成的类型

如果类型断言成功, 他将返回一个转换后的值和一个bool 值, 表示转换成功

package main

import "fmt"

func main() {
    var i interface{} = "Hello, World"
    str, ok := i.(string)
    if ok {
        fmt.Printf("'%s' is a string \n", str)
    } else {
        fmt.Println("conversion failed")
    }
}

将一个接口类型转换成另一个接口类型, 语法为

T(value)
  • T : 接口类型
  • value : 需要转换的值

在类型转换中, 我们必须保证要转换的值和我目标接口类型之间是兼容的, 否则编译器会报错.