golang 常用类型转换

1.string转int
	//string转int
	intNum, err := strconv.Atoi("100")
	fmt.Println("intNum--", intNum, "--", err)

	//string转int32,10代表十进制
	int32Num, err := strconv.ParseInt("100", 10, 32)
	fmt.Println("int32Num--", int32Num, "--", err)

	//string转int64,10代表十进制
	int64Num, err := strconv.ParseInt("100", 10, 64)
	fmt.Println("int64Num--", int64Num, "--", err)
2.int转string
	//int转string
	intStr := strconv.Itoa(intNum)
	fmt.Println("intStr--", intStr)

	//int32转string,10代表十进制
	int32Str := strconv.FormatInt(int32Num, 10)
	fmt.Println("int32Str--", int32Str)

	//int64转string,10代表十进制
	int64Str := strconv.FormatInt(int64Num, 10)
	fmt.Println("int64Str--", int64Str)
3.string转float
	//string转float32
	float32Num, err := strconv.ParseFloat("20.5", 32)
	fmt.Println("float32Num--", float32Num, "--", err)

	//string转float64
	float64Num, err := strconv.ParseFloat("20.5", 64)
	fmt.Println("float64Num--", float64Num, "--", err)
4.float转string
	//float32转string
	float32Str := strconv.FormatFloat(float32Num, 'f', -1, 32)
	fmt.Println("float32Str--", float32Str)

	//float64转string
	float64Str := strconv.FormatFloat(float64Num, 'f', -1, 64)
	fmt.Println("float64Str--", float64Str)
5.切片转string
	//切片转string
	keys := []string{"111", "222", "333", "444", "555", "666", "777", "888", "999", "1000"}
	keysJson, err := json.Marshal(keys)
	if err != nil {
		fmt.Println("err--", err)
	}
	keysStr := string(keysJson)
	fmt.Println("str--", keysStr)
6.string转切片
	//string转切片
	var strs []string
	err = json.Unmarshal([]byte(keysStr), &strs)
	if err != nil {
		fmt.Println("err--", err)
	}
	for i, value := range strs {
		fmt.Println("索引:", i, "值:", value)
	}
7.map转string
	//map转string
	myMap := make(map[string]string, 2)
	myMap["姓名"] = "罗小黑"
	myMap["种族"] = "妖族"
	myMapJson, err := json.Marshal(myMap)
	if err != nil {
		fmt.Println("err--", err)
	}
	myMapStr := string(myMapJson)
	fmt.Println("myMapStr--", myMapStr)
8.string转map
	//string转map
	err = json.Unmarshal([]byte(myMapStr), &myMap)
	if err != nil {
		fmt.Println("err--", err)
	}
	for key, value := range myMap {
		fmt.Println("key:", key, "value:", value)
	}
9.结构转string
type MyStruct struct {
	Index   int               `json:"index"`
	IntArr  []int64           `json:"intArr"`
	DataMap map[string]string `json:"dataMap"`
}

func Test2(t *testing.T) {
	intArr := []int64{100, 200, 300}
	dataMap := map[string]string{
		"key1": "v1",
		"key2": "v2",
		"key3": "v3",
	}

	myStruct := MyStruct{1, intArr, dataMap}
	jsonByte, err := json.Marshal(myStruct)
	if err != nil {
		fmt.Println("err--", err)
	}

	myStr := string(jsonByte)
	fmt.Println("myStr--", myStr)
}
10.string转结构
	myStruct2 := MyStruct{}
	err = json.Unmarshal([]byte(myStr), &myStruct2)
	if err != nil {
		fmt.Println("err--", err)
	}
	fmt.Println("myStruct2--", myStruct2.Index, "--", myStruct2.IntArr, "--", my2.DataMap)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值