Go 语言类型转换学习笔记

在 Go 语言中,经常需要进行类型转换以满足特定的需求。本文将介绍 Go 语言中的类型转换及其使用方式,并通过示例代码详细说明。

基本类型转换

Go 语言的基本类型包括整数、浮点数、布尔值、字符串等。它们之间可以相互转换,但需要注意类型转换可能带来的精度损失和溢出等问题。

字符串转整数

Go 语言提供了 strconv 包来进行字符串和基本数据类型的转换。例如,将字符串转换为整数可以使用 Atoi() 函数:

goCopy Code
package main import ( "fmt" "strconv" ) func main() { s := "123" i, err := strconv.Atoi(s) if err != nil { fmt.Println(err) return } fmt.Println(i) }

运行结果为:

Copy Code
123

整数转字符串

将整数转换为字符串也十分常见,可以使用 Itoa() 函数:

goCopy Code
package main import ( "fmt" "strconv" ) func main() { i := 123 s := strconv.Itoa(i) fmt.Println(s) }

运行结果为:

Copy Code
123

浮点数转整数

将浮点数转换为整数时,需要注意浮点数可能会造成精度损失。Go 语言提供了两个函数来进行浮点数和整数之间的转换,分别是 Round()Trunc()。其中,Round() 函数将浮点数四舍五入后转换为整数,Trunc() 函数则直接截断小数部分。

goCopy Code
package 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 Code
3 3

自定义类型转换

在 Go 语言中,可以使用 type 关键字定义新的数据类型。例如,我们定义一个 MyInt 类型表示一个整数,在需要时可以将其转换为 int 类型:

goCopy Code
package main import "fmt" type MyInt int func main() { var a MyInt = 123 var b int = int(a) fmt.Println(b) }

运行结果为:

Copy Code
123

需要注意的是,自定义类型和基本类型之间进行转换时需要显示地进行类型转换,不能直接赋值。