Go 基本数据类型与字符串相互转换

go语言中文文档:

Go语言标准库文档中文版 | Go语言中文网 | Golang中文社区 | Golang中国Go语言文档中文版,Go语言中文网,中国 Golang 社区,Go语言学习园地,致力于构建完善的 Golang 中文社区,Go语言爱好者的学习家园。分享 Go 语言知识,交流使用经验https://studygolang.com/pkgdoc

1.基本类型转换成字符串(string)

  • fmt.Sprintf方法

fmt.Sprintf("%参数", 表达式)

注意:

  1. 参数需要和表达式的数据类型相匹配
  2. fmt.Sprintf()转换后返回字符串结果
func main() {
    var num1 int = 99
    var num2 float64 = 23.55
    var b bool = true
    var mych byte = 'd'
    var st = string  // 空的string

    // 转化成string
    str = fmt.Sprintf("%d", num1)
    str = fmt.Sprintf("%f", num2)
    str = fmt.Sprintf("%t", b)
    str = fmt.Sprintf("%c", mych)

}
  • strconv包
package main

import (
    "fmt"
    "strconv"
)

func main() {
    var num1 int = 99
    var num2 float64 = 23.55
    var b bool = true
    var mych byte = 'd'
    var st = string  // 空的string

    str = strconv.FormatInt(int64(num1), 10)  // 转出10进制字符串
    fmt.Printf("type: %T, str: %q\n", str, str)  // 格式化输出

    // "f" 转换成浮点型数据后的一种表示格式,详见文档
    // 10 精度
    // 64 转换成float64
    str = strconv.FormatFloat(num2, "f", 10, 64)  // 

    str = strconv.FormatBool(b)  // 转出布尔类型字符串

    // 将整型变量转换成字符串,特例函数
    var num3 int = 333
    str = strconv.Itoa(num3)   // 这里num3为int型,如果不是需要先显示转换

}

2.字符串转换成基本数据类型

  • strconv包
func main() {
    // 布尔类型转换
    var str string = "true"
    var b bool 
    b, _ = strconv.ParseBool(str)

    // 整型转换
    var str2 string = "232"
    var n int64
    var n2 int
    // 10 转换成10进制
    // 0、8、16、32、64 分别代表 int、int8、int16、int32、int64
    n, _ = strconv.ParseInt(str2, 10, 64)
    n2 = int(n)  // 获取int类型的值,显示转换

    // 浮点型转换
    var str3 string = "22.33"
    var f float64
    f, _ = strconv.ParseFloat(str3, 64)

}

注意:

  • 将string类型转换成基本类型时,必须确保string类型是有效的;如果是无效值则会转换成功,但是转换后的值为基本类型的默认值。例如不能把"ddd"转换成一个整数,如果这样做,golang直接将其转换成0

Guess you like

Origin blog.csdn.net/weixin_40123451/article/details/121386128