1.转换成其他类型(Parse类函数)
1.1 转换成整型(Atoi)
1.语法
func Atoi(s string) (int, error)
|
2.使用示例
package main import ( "fmt" "strconv" ) func main() { s := "666" sInt,err := strconv.Atoi(s) if err == nil { fmt.Printf("将字符串:%s 转成整型:%d 类型: %T \n",s,sInt,sInt) } }
|
1.2 解析成整型(ParseInt)
1.语法
func ParseInt(s string, base int, bitSize int) (i int64, err error)
|
base
:表示进制(2到36)。如果base=0,则根据字符串前缀判断,0x
:表示十六进制、0
:表示八进制、其他代表十进制。
bitSize
: 指定结果必须是不会溢出的整数类型,其值0、8、16、32、64 分别代表int、int8、int16、int32、int64
2.使用示例
package main import ( "fmt" "strconv" ) func main() { s := "666" i,err := strconv.ParseInt(s,10,0) if err != nil { panic("类型转换失败") } fmt.Printf("字符串%s转成int,%d 类型:%T \n", s,i,i) ii,err := strconv.ParseInt(s,10,8) if err != nil { panic("类型转换int8失败,值溢出") } fmt.Printf("字符串%s转成int,%d 类型:%T ", s,ii,ii) }
|
ParseUint
与ParseInt
类似,但是只用于无符号数字
1.3 解析成浮点型(ParseFloat)
1.语法
func ParseFloat(s string, bitSize int) (float64, error)
|
将一个字符串s解析成浮点数返回。如果字符串s符合语法规则,会返回一个最为接近s值的浮点数。精度由bitSize
指定,其值32表示float32、64表示float32
。
2.使用示例
package main import ( "fmt" "strconv" ) func main() { s := "666" i,err := strconv.ParseFloat(s,32) if err != nil { panic("类型转换失败") } fmt.Printf("字符串%s转成float,%f 类型:%T \n", s,i,i) }
|
1.4 解析成布尔型(ParseBool)
1.语法
func ParseBool(str string) (bool, error)
|
返回字符串表示的布尔值。其值如果是:1,t,T,True,TRUE,true,0,f,F,FALSE,false,F
str值 |
返回结果 |
1,t,T,True,TRUE,true, |
True |
0,f,F,FALSE,false,F |
False |
其他值 |
false |
2.使用示例
package main import ( "fmt" "strconv" ) func main() { strSlice := []string{ "1","t","T","True","TRUE","true", "0","f","F","False","FALSE","false", "9","a","你","+", } for _,v := range strSlice { b,_ := strconv.ParseBool(v) fmt.Printf("当x = %s,返回: %t\n", v,b) } }
|
Format
类函数主要的功能是将其他类型格式化成字符串。
2.1 int转string(Itoa)
1.Itoa源码
func Itoa(i int) string { return FormatInt(int64(i), 10) }
|
2. 使用示例
package main import ( "fmt" "strconv" ) func main() { i :=100 s := strconv.Itoa(i) fmt.Printf("转换结果: 值: %s 类型: %T \n", s,s) }
|
2.2 int转string(ForamtInt)
func FormatInt(i int64, base int) string
|
1. 使用示例
package main import ( "fmt" "strconv" ) func main() { var i int64 =123456 s2 := strconv.FormatInt(i,2) fmt.Printf("base=2(二进制) 转换结果: 值: %s 类型: %T \n", s2,s2) s8 := strconv.FormatInt(i,8) fmt.Printf("base=8(八进制) 转换结果: 值: %s 类型: %T \n", s8,s8) s10 := strconv.FormatInt(i,10) fmt.Printf("base=10(十进制) 转换结果: 值: %s 类型: %T \n", s10,s10) s16 := strconv.FormatInt(i,16) fmt.Printf("base=16(十六进制) 转换结果: 值: %s 类型: %T \n", s16,s16) }
|
ForamtUint
和ForamtInt
使用方法一样,区别是ForamtUint
:无符号,ForamtInt
:有符号。
2.3 Float转string(ForamtFloat)
func FormatFloat(f float64, fmt byte, prec, bitSize int) string
|
1. 使用示例
package main import ( "fmt" "strconv" ) func main() { i := 30.1237 s1 := strconv.FormatFloat(i,'f',4,32) fmt.Printf("保留4位小数-> 值: %s 类型: %T \n", s1,s1) s2 := strconv.FormatFloat(i,'g',4,32) fmt.Printf("总长度返回4位-> 值: %s 类型: %T \n", s2,s2) }
|
1.使用示例
package main
import ( "fmt" "strconv" ) func main() { s1 := strconv.FormatBool(true) fmt.Printf("返回true字符串-> 值: %s 类型: %T \n", s1,s1) s2 := strconv.FormatBool(false) fmt.Printf("返回false字符串-> 值: %s 类型: %T \n", s2,s2) }
|