Go string和interface{}与其他类型互转

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/double_happiness/article/details/84662248

        使用过go语言的都知道go语言对于类型的控制有多么的严格,因此所有的类型都应该通过显示的转换来完成,下面就给出常见的string和其他常见类型的转换以及interface{}类型转换为其他类型,具体的底层实现可以参考strconv库中的实现。

package main


import (
	"fmt"
	"strconv"
)

func main() {
	//string与int互转
	var num1 int = 10;
	//Itoa底层调用的是FormatInt
	//I to S
	str1 := strconv.Itoa(num1)
	fmt.Println(str1)
	//S to I
	num1_int, _ := strconv.Atoi(str1)
	fmt.Println(num1_int)

	//int64与string类型
	var num2 int64 = 432;
	//I to S
	str2 := strconv.FormatInt(num2, 10)
	fmt.Println(str2)
	//S to I
	num2_int, _ := strconv.ParseInt(str2, 10, 64)
	fmt.Println(num2_int)

	//float与string互转
	//bitSize表示最后一位的位数设置为float32或者float64类型
	var f1 float64 = 12.432
	//F to S
	str3 := strconv.FormatFloat(f1, 'E', -1, 32)
	fmt.Println(str3)
	//S to F
	f_float, _ := strconv.ParseFloat(str3, 32)
	fmt.Println(f_float)

	//	bool与string互转
	var bb bool = true
	//B to S
	str4 := strconv.FormatBool(bb)
	fmt.Println(str4)
	//S to B
	b, _ := strconv.ParseBool(str4)
	fmt.Println(b)

	//interface转其他类型————返回值是interface,直接赋值是无法转化的
	//interface 转string
	var a interface{}
	var str5 string
	a = "3432423"
	str5 = a.(string)
	fmt.Println(str5)

	//interface 转int
	var m interface{}
	var m1 int
	m = 43
	m1 = m.(int)
	fmt.Println(m1)

	//interface 转float64
	var ff interface{}
	var ff1 float64
	ff = 432.54
	ff1 = ff.(float64)
	fmt.Println(ff1)
}

猜你喜欢

转载自blog.csdn.net/double_happiness/article/details/84662248