包 strconv 实现基本数据类型的字符串表示形式之间的转换。 oi井 等效于ParseInt(s,10,0),转换为int类型。 ParseInt 解释给定基数(0、2到36)和位大小(0到64)中的字符串s并返回相应的值i。
package main
import "strconv"
func main() {
strVar := "100"
intVar, _ := strconv.Atoi(strVar)
strVar1 := "-52541"
intVar1, _ := strconv.ParseInt(strVar1, 10, 32)
strVar2 := "101010101010101010"
intVar2, _ := strconv.ParseInt(strVar2, 10, 64)
}
ParseFloat 以bitSize指定的精度将字符串s转换为浮点数:float32为32或float64为64。当bitSize = 32时,结果仍为float64类型,但可以将其转换为float32而无需更改其值。
package main
import (
"fmt"
"strconv"
)
func main() {
s := "3.1415926535"
f, _ := strconv.ParseFloat(s, 8)
fmt.Printf("%T, %v\n", f, f)
s1 := "-3.141"
f1, _ := strconv.ParseFloat(s1, 8)
fmt.Printf("%T, %v\n", f1, f1)
s2 := "-3.141"
f2, _ := strconv.ParseFloat(s2, 32)
fmt.Printf("%T, %v\n", f2, f2)
}
float64, 3.1415926535
float64, -3.141
float64, -3.1410000324249268
解析布尔 返回由字符串表示的布尔值。它接受1,t,T,TRUE,true,True,0,f,F,FALSE,false,False。其他任何值都将返回错误。
package main
import (
"fmt"
"strconv"
)
func main() {
s1 := "true"
b1, _ := strconv.ParseBool(s1)
fmt.Printf("%T, %v\n", b1, b1)
s2 := "t"
b2, _ := strconv.ParseBool(s2)
fmt.Printf("%T, %v\n", b2, b2)
s3 := "0"
b3, _ := strconv.ParseBool(s3)
fmt.Printf("%T, %v\n", b3, b3)
s4 := "F"
b4, _ := strconv.ParseBool(s4)
fmt.Printf("%T, %v\n", b4, b4)
}
bool, true bool, true bool, false bool, false
格式布尔 用于将布尔变量转换为String的函数。
package main
import (
"fmt"
"reflect"
"strconv"
)
func main() {
var b bool = true
fmt.Println(reflect.TypeOf(b))
var s string = strconv.FormatBool(true)
fmt.Println(reflect.TypeOf(s))
}
bool string
FormatFloat将浮点数f转换为字符串s。
package main
import (
"fmt"
"reflect"
"strconv"
)
func main() {
var f float64 = 3.1415926535
fmt.Println(reflect.TypeOf(f))
fmt.Println(f)
var s string = strconv.FormatFloat(f, 'E', -1, 32)
fmt.Println(reflect.TypeOf(s))
fmt.Println(s)
}
float64
3.1415926535
string
3.1415927E+00
FormatInt将Integer数字i转换为String。
package main
import (
"fmt"
"reflect"
"strconv"
)
func main() {
var i int64 = -654
fmt.Println(reflect.TypeOf(i))
fmt.Println(i)
var s string = strconv.FormatInt(i, 10)
fmt.Println(reflect.TypeOf(s))
fmt.Println(s)
}
int64
-654
string
-654
package main
import (
"fmt"
"reflect"
)
func main() {
var i int = 10
fmt.Println(reflect.TypeOf(i))
i16 := int16(i)
fmt.Println(reflect.TypeOf(i16))
i32 := int32(i)
fmt.Println(reflect.TypeOf(i32))
i64 := int64(i)
fmt.Println(reflect.TypeOf(i64))
}
int int16 int32 int64
package main
import (
"fmt"
"reflect"
)
func main() {
var f32 float32 = 10.6556
fmt.Println(reflect.TypeOf(f32))
f64 := float64(f32)
fmt.Println(reflect.TypeOf(f64))
f64 = 1097.655698798798
fmt.Println(f64)
f32 = float32(f64)
fmt.Println(f32)
}
float32
float64
1097.655698798798
1097.6556
package main
import (
"fmt"
"reflect"
)
func main() {
var f32 float32 = 10.6556
fmt.Println(reflect.TypeOf(f32))
i32 := int32(f32)
fmt.Println(reflect.TypeOf(i32))
fmt.Println(i32)
f64 := float64(i32)
fmt.Println(reflect.TypeOf(f64))
}
float32
int32
10
float64