📌  相关文章
📜  go type cast - Go 编程语言 - Go 编程语言(1)

📅  最后修改于: 2023-12-03 15:30:59.925000             🧑  作者: Mango

Go 编程语言 - Go 类型转换

在Go编程语言中,类型转换(type cast)是将一个数据类型转换为另一个数据类型的过程。这是在编写代码时经常需要使用到的一个操作。

基础语法

类型转换使用以下语法:

var1 := type1(value1)
var2 := type2(var1)

其中,type1和type2表示要转换的数据类型,value1表示需要转换的值,var1和var2表示转换后的变量。

举个例子,将一个整数转换为浮点数:

var i int = 5
var f float64 = float64(i)
数据类型转换

在Go中,类型转换必须满足以下条件:

  1. 转换必须是合法的,否则编译器会报错。
  2. 转换必须是可逆的,可以通过将值重新转换回原始类型来验证。

以下是常见的数据类型转换:

整型转换为浮点型

将整型转换为浮点型非常简单,只需要将整型变量赋值给浮点型变量即可。例如:

var i int = 5
var f float64 = float64(i)
浮点型转换为整型

将浮点型转换为整型需要注意精度问题。可以使用math包中的Round函数来处理精度问题。例如:

import "math"

func main() {
    var f float64 = 3.14
    var i int = int(math.Round(f))
}
字符串转换为整型或浮点型

将字符串转换为整型或浮点型需要使用strconv包中的函数。例如:

import "strconv"

func main() {
    var s string = "123"
    var i int, err = strconv.Atoi(s) // 将字符串转换为整型
    var f float64, err = strconv.ParseFloat(s, 64) // 将字符串转换为浮点型
}
自定义类型转换

在Go中,我们可以定义自己的数据类型,并对其进行转换。例如,我们可以定义一个温度类,它可以将摄氏度转换为华氏度。实现代码如下:

type Celsius float64
type Fahrenheit float64

func (c Celsius) ToFahrenheit() Fahrenheit {
    return Fahrenheit(c*9/5 + 32)
}

func (f Fahrenheit) ToCelsius() Celsius {
    return Celsius((f - 32) * 5 / 9)
}

func main() {
    var c Celsius = 25
    var f Fahrenheit = c.ToFahrenheit()
    fmt.Printf("%v摄氏度 = %v华氏度", c, f)
}
总结

类型转换是Go编程中的基础操作之一。通过本文的介绍,您应该会了解基本的类型转换语法和常见的数据类型转换方法。如果您需要定义自己的数据类型,并对其进行转换,可以参考自定义类型转换的部分。