类型转换
Go语言中只有强制类型转换,没有隐式类型转换。该语法只能在两个类型之间支持相互转换的时候使用
(1) 整型之间的转换 int8 int16 int32
x与y如果类型不同,则无法直接相加,需要进行类型转换,比如 int8(x), int16(y), int32(z)
package main
import "fmt"
func main() {
var x int8 = 10
var y int16 = 10
fmt.Println(x + int8(y))
}
(2) 字符串与整型之间的转换: strconv.Itoa 和 strconv.Atoi
Itoa 把数字转换成字符串 Atoi 把字符串转换为数字
在转换的时候会返回错误信息,不想要的话使用 _ 进行匿名接收
package main
import (
"fmt"
"reflect"
"strconv"
)
func main() {
var ageStr = "32"
var ageInt, err = strconv.Atoi(ageStr)
fmt.Println("err: ", err)
fmt.Println(ageInt, reflect.TypeOf(ageInt))
price := 100
var priceStr = strconv.Itoa(price)
fmt.Println(priceStr, reflect.TypeOf(priceStr))
}
/*
err: <nil>
32 int
100 string
*/
(3) 将数字字符串转换为整型:strconv Parse系列函数
strconv.ParseInt(字符串, 进制, 比特位)
比特位是按照有符号的来算,控制转换的范围
进制是设置十进制、二进制、十六进制等
将字符串转换为浮点型
无论自己设置的精度是多少,最后返回的一定是float64。参数使用64即可
将字符串转换为布尔值
返回字符串表示的bool值。它接受1、0、t、f、T、F、true、false、True、False、TRUE、FALSE,否则返回错误
package main
import (
"fmt"
"reflect"
"strconv"
)
func main() {
var result1, _ = strconv.ParseInt("123", 10, 8)
fmt.Println(result1, reflect.TypeOf(result1))
var result2, _ = strconv.ParseFloat("3.1415", 64)
fmt.Println(result2, reflect.TypeOf(result2))
var result3, _ = strconv.ParseBool("0")
fmt.Println(result3)
}
/*
123 int64
3.1415 float64
false
*/
网友评论