转换和检查类型

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)
}

如何在Go中将字符串转换为浮点类型?

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

如何在Go中将字符串转换为布尔数据类型转换?

解析布尔 返回由字符串表示的布尔值。它接受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

如何在Go中将布尔类型转换为字符串?

格式布尔 用于将布尔变量转换为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

如何在Go中将Float转换为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

将Int数据类型转换为Int16 Int32 Int64

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

将Float32转换为Float64并将Float64转换为Float32

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

在Go中将Int数据类型转换为Float

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