Go语言中的基本数据类型之间的转换方法

在 Go 语言里,基本数据类型之间的转换是一项常见操作。下面会详细介绍不同基本数据类型之间的转换方法。

1.整数类型转换

在 Go 语言中,不同大小的整数类型可以相互转换,不过要留意可能出现的溢出问题。

package main

import "fmt"

func main() {
    var a int8 = 120
    var b int16
    b = int16(a)
    fmt.Printf("a 的类型是 %T,值是 %d\n", a, a)
    fmt.Printf("b 的类型是 %T,值是 %d\n", b, b)
}
package main

import "fmt"

func main() {
    var c int = 10
    var d float64
    d = float64(c)
    fmt.Printf("c 的类型是 %T,值是 %d\n", c, c)
    fmt.Printf("d 的类型是 %T,值是 %f\n", d, d)

    var e float64 = 10.9
    var f int
    f = int(e)
    fmt.Printf("e 的类型是 %T,值是 %f\n", e, e)
    fmt.Printf("f 的类型是 %T,值是 %d\n", f, f)
}

2.布尔类型和其他类型不能直接转换

在 Go 语言中,布尔类型bool和其他基本数据类型(像整数、浮点数等)不能直接进行转换。

3.字符串与其他类型的转换

Go 语言提供了strconv包来实现字符串和其他类型的转换。

package main

import (
    "fmt"
    "strconv"
)

func main() {
    // 整数转字符串
    num := 123
    str := strconv.Itoa(num)
    fmt.Printf("num 的类型是 %T,值是 %d\n", num, num)
    fmt.Printf("str 的类型是 %T,值是 %s\n", str, str)

    // 字符串转整数
    str2 := "456"
    num2, err := strconv.Atoi(str2)
    if err != nil {
        fmt.Println("转换出错:", err)
    } else {
        fmt.Printf("str2 的类型是 %T,值是 %s\n", str2, str2)
        fmt.Printf("num2 的类型是 %T,值是 %d\n", num2, num2)
    }
}

浮点数和字符串的转换

1. strconv.FormatFloat

这个函数可将浮点数转换为字符串,可以指定精度和格式。

package main

import (
    "fmt"
    "strconv"
)

func main() {
    num := 3.14159
    str := strconv.FormatFloat(num, 'f', 2, 64)
    fmt.Printf("浮点数 %f 转换为字符串 %s\n", num, str)
}

在上述代码中,'f'代表十进制表示,2是保留的小数位数,64表示浮点数类型为float64

2. strconv.ParseFloat

该函数用于把字符串转换为浮点数。若字符串无法转换为有效的浮点数,会返回一个错误。

package main

import (
    "fmt"
    "strconv"
)

func main() {
    str := "3.14"
    num, err := strconv.ParseFloat(str, 64)
    if err != nil {
        fmt.Println("转换出错:", err)
    } else {
        fmt.Printf("字符串 %s 转换为浮点数 %f\n", str, num)
    }
}

布尔值和字符串的转换

1. strconv.FormatBool

此函数用于把布尔值转换为字符串"true"或者"false"

package main

import (
    "fmt"
    "strconv"
)

func main() {
    b := true
    str := strconv.FormatBool(b)
    fmt.Printf("布尔值 %v 转换为字符串 %s\n", b, str)
}
2. strconv.ParseBool

该函数用于把字符串转换为布尔值。字符串可以是"1""t""T""true""TRUE""True" 等表示true,或者"0""f""F""false""FALSE""False" 等表示false。若字符串无法转换为有效的布尔值,会返回一个错误。

package main

import (
    "fmt"
    "strconv"
)

func main() {
    str := "true"
    b, err := strconv.ParseBool(str)
    if err != nil {
        fmt.Println("转换出错:", err)
    } else {
        fmt.Printf("字符串 %s 转换为布尔值 %v\n", str, b)
    }
}

仅介绍一部分strconv包的函数,大家如果要用其他函数可以自行查询使用! 

总结

strconv包提供了丰富的函数,能够方便地实现字符串和基本数据类型之间的转换。在使用这些函数时,要留意错误处理,因为转换可能会失败。

你可能感兴趣的:(golang,开发语言,后端)