一、fmt.Sprintf(“%参数”,表达式)
Sprintf根据format参数生成格式化的字符串并返回该字符串。
package main
import (
"fmt"
)
func main() {
var a = 99
var b = 23.44
var c = true
var d = 'h'
var str string
//fmt.Sprintf
str = fmt.Sprintf("%d", a) //%d,十进制表现
fmt.Printf("str type %T str=%v\n", str, str)
str = fmt.Sprintf("%f", b)
fmt.Printf("str type %T str=%v\n", str, str)
str = fmt.Sprintf("%t", c)
fmt.Printf("str type %T str=%v\n", str, str)
str = fmt.Sprintf("%c", d)
fmt.Printf("str type %T str=%v\n", str, str)
}
输出
PS D:\GO\goproject\chaptor3\demo2> .\main.exe
str type string str=99
str type string str=23.440000
str type string str=true
str type string str=h
%b 表示为二进制
%c 该值对应的unicode码值
%d 表示为十进制
%o 表示为八进制
%q 该值对应的单引号括起来的go语法字符字面值,必要时会采用安全的转义表示
%x 表示为十六进制,使用a-f
%X 表示为十六进制,使用A-F
%U 表示为Unicode格式:U+1234,等价于"U+%04X"
%t 单词true或false
%f 有小数部分但无指数部分,如123.456
二、strconv实现基本数据类型转string
package main
import (
"fmt"
"strconv"
)
func main() {
var a int64 = 99
var b = 23.44
var c = true
var str string
str = strconv.FormatInt(a, 10) //10进制
fmt.Printf("str type %T str=%q\n", str, str)
str = strconv.FormatFloat(b, 'f', 10, 64)
fmt.Printf("str type %T str=%q\n", str, str)
//'f'格式,10表示小数位保留10位,64表示float64
str = strconv.FormatBool(c)
fmt.Printf("str type %T str=%q\n", str, str)
}
strconv包中有一个函数Itoa
package main
import (
"fmt"
"strconv"
)
func main() {
var num1 int = 444
var str string
str = strconv.Itoa(num1)
fmt.Printf("str type %T str=%q", str, str)
}
输出
PS D:\GO\goproject\chaptor3\demo3> .\main.exe
str type string str="444"
三、string转基本数据类型
package main
import (
"fmt"
"strconv"
)
//golang中string转成基本数据类型
func main() {
var str1 string = "true"
var a bool
a, _ = strconv.ParseBool(str1)
//strconv.ParseBool返回两个值(value,err),忽略err值,用_代替
fmt.Printf("a type %T a=%v", a, a)
var str2 string = "1234"
var b int64
b, _ = strconv.ParseInt(str2,10,64) //10进制
fmt.Printf("b type %T b=%v", b, b)
var str3 string = "12.34"
var c float64
c, _ = strconv.ParseFloat(str3,64)
fmt.Printf("c type %T c=%v", c, c)
}
输出
PS D:\GO\goproject\chaptor3\stringtobasictype> go run .\main.go
a type bool a=trueb type int64 b=1234c type float64 c=12.34