Go 语言类型转换学习笔记
在 Go 语言中,经常需要进行类型转换以满足特定的需求。本文将介绍 Go 语言中的类型转换及其使用方式,并通过示例代码详细说明。
基本类型转换
Go 语言的基本类型包括整数、浮点数、布尔值、字符串等。它们之间可以相互转换,但需要注意类型转换可能带来的精度损失和溢出等问题。
字符串转整数
Go 语言提供了 strconv
包来进行字符串和基本数据类型的转换。例如,将字符串转换为整数可以使用 Atoi()
函数:
goCopy Codepackage main
import (
"fmt"
"strconv"
)
func main() {
s := "123"
i, err := strconv.Atoi(s)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(i)
}
运行结果为:
Copy Code123
整数转字符串
将整数转换为字符串也十分常见,可以使用 Itoa()
函数:
goCopy Codepackage main
import (
"fmt"
"strconv"
)
func main() {
i := 123
s := strconv.Itoa(i)
fmt.Println(s)
}
运行结果为:
Copy Code123
浮点数转整数
将浮点数转换为整数时,需要注意浮点数可能会造成精度损失。Go 语言提供了两个函数来进行浮点数和整数之间的转换,分别是 Round()
和 Trunc()
。其中,Round()
函数将浮点数四舍五入后转换为整数,Trunc()
函数则直接截断小数部分。
goCopy Codepackage main
import (
"fmt"
"math"
)
func main() {
f := 3.14
i := int(math.Round(f))
fmt.Println(i)
i = int(math.Trunc(f))
fmt.Println(i)
}
运行结果为:
Copy Code3 3
自定义类型转换
在 Go 语言中,可以使用 type
关键字定义新的数据类型。例如,我们定义一个 MyInt
类型表示一个整数,在需要时可以将其转换为 int
类型:
goCopy Codepackage main
import "fmt"
type MyInt int
func main() {
var a MyInt = 123
var b int = int(a)
fmt.Println(b)
}
运行结果为:
Copy Code123
需要注意的是,自定义类型和基本类型之间进行转换时需要显示地进行类型转换,不能直接赋值。