Go语言基础(四)—String与其他基本数据类型的转换

Go语言中,不同类型的变量之间不能自动转换,需要显式转换,这与Java和C都有区别

var i int32 =100
var n1 float32 = float(i) //将int32转换为float32

注意:若将int64转换成int8,编译时不会报错,但是结果按照溢出处理,所以转换需要考虑范围。

func main() {
	var in64 int64 = 1651235425
	var in8 int8 = int8(in64)
	fmt.Println("in64=", in64, "in8=", in8)

输出:

in64= 1651235425 in8= 97

其他基本数据类型与String的转换

fmt包
  • 可通过fmt.Sprintf(“参数”,表达式),Sprintf根据format参数生成格式化的字符串并返回该字符串。
func main() {
	var num1 int = 99
	var num2 float64 = 2.4467
	var str string = fmt.Sprintf("%d", num1)
	var str2 string = fmt.Sprintf("%f", num2)
	fmt.Printf("str类型:%T;str值:%s  str2类型:%T,str2 值:%s", str, str, str2, str2)
}

输出:

str类型:string;str值:99  str2类型:string,str2 值:2.446700
Strconv包
  • 可通过strconv包的函数
func main() {
	var num int = 99
	var num2 float64 = 23.456
	var bools bool = true

	str := strconv.FormatInt(int64(num), 10)
	fmt.Printf("str type %T value %q \n", str, str)

	str1 := strconv.FormatFloat(num2, 'f', 10, 64) // 10为显示十位数字,
	fmt.Printf("str1 type is %T , value is %q \n", str1, str1)

	str2 := strconv.FormatBool(bools)
	fmt.Printf("str2 type is %T ,value is %q \n", str2, str2)
}

输出结果:

str type string value "99"
str1 type is string , value is "23.4560000000" 
str2 type is string ,value is "true"  
Int转String还可以使用Itoa函数
	var ints int = 10
	str := strconv.Itoa(ints)
	fmt.Println(str)

String转其他基本数据类型

使用strconv包的ParseXXX

下面我们仅以bool类型为例,其它类型同理

var str1 = "true"

boo, _ := strconv.ParseBool(str1) 

该函数会返回两个值,第一个是bool 第二个返回错误,, _可以忽略第二个返回值。我们此处只关心bool类型

注意

将String转换成其他数据类型时,要确保其参数能被转换成有效数据,若将“hello"转换成整数,那么Go会将其转换成0,其他类型也是转换成0所对应的值,如:bool型为false

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

稷下学员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值