1.7.1基本介绍
在程序开发中,我们经常将基本数据类型转成string,或者将string转成基本类型。
1.7.2基本类型转string类型
方式1、fmt.Sprintf("%参数",表达式)
案例演示
package main
import "fmt"
func main() {
var n1 int = 100
var n2 float64 = 5.20
var b bool = true
var char byte = 'w'
var str string
//Sprintf方法
str = fmt.Sprintf("%d", n1)
fmt.Printf("str type %T str= %q\n", str, str)
str = fmt.Sprintf("%f", n2)
fmt.Printf("str type %T str= %q\n", str, str)
str = fmt.Sprintf("%t", b)
fmt.Printf("str type %T str= %q\n", str, str)
str = fmt.Sprintf("%c", char)
fmt.Printf("str type %T str= %q\n", str, str)
}
方式2、使用strconv包的函数
案例说明
package main
import (
"fmt"
"strconv"
)
func main() {
var n1 int = 99
var n2 float64 = 99.99
var b bool = true
var str string
str = strconv.FormatInt(int64(n1), 10)
fmt.Printf("str type %T str= %q\n", str, str)
str = strconv.FormatFloat(n2,'f', 10, 64)
fmt.Printf("str type %T str= %q\n", str, str)
str = strconv.FormatBool(b)
fmt.Printf("str type %T str= %q\n", str, str)
}
1.7.3string类型转基本数据类型
1、使用strconv包的函数
案例演示
package main
import (
"fmt"
"strconv"
)
func main() {
var (
str string = "true"
str1 string = "5201314"
str2 string = "520.1314"
b bool
n1 int64
n2 int
f float64
)
b , _ = strconv.ParseBool(str)
fmt.Printf("b byte %T b= %v\n", b, b)
n1 , _ = strconv.ParseInt(str1, 10, 64)
//返回的是int64或者float64 想要得到int32、int8
//float32需要做转换
n2 = int(n1)
fmt.Printf("n1 byte %T n1= %v\n", n1, n1)
fmt.Printf("n2 byte %T n2= %v\n", n2, n2)
f , _ = strconv.ParseFloat(str2, 64)
fmt.Printf("f byte %T f= %v\n", f, f)
}
1.7.4string转基本数据类型的注意事项
在将String类型转成基本数据类型时,要确保string类型能转换成有效的数据,比如可以”123“,转成一个整数,但不能把”golang“装换成一个整数,如果这样做,golang将直接转换成0,其他类型也是同样的道理 float => 0, bool => false