• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Go语言中各种数据格式转换

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Go语言各种数据类型格式转换

package main

import (
	"encoding/json"
	"fmt"
	"reflect"
	"strconv"
)

type User struct {
	Id   int    `json:"id"`
	Name string `json:"name"`
}

func main() {
	//string到int
	n10, _ := strconv.Atoi("12")
	fmt.Println(reflect.TypeOf(n10))
	// string到int64
	n64, _ := strconv.ParseInt("12", 10, 64)
	fmt.Println(reflect.TypeOf(n64))
	// string to float32、float64
	f_32, _ := strconv.ParseFloat("3.1415", 32)
	f_64, _ := strconv.ParseFloat("3.1415", 64)
	fmt.Printf("%T\n", f_32)  // float64
	fmt.Printf("%T\n", f_64)

	// int到string
	s1 := strconv.Itoa(11)
	fmt.Println(reflect.TypeOf(s1))
	// int64到string
	s2 := strconv.FormatInt(11,10)
	fmt.Println(reflect.TypeOf(s2))
	// float32/64 to string
	s3 := strconv.FormatFloat(3.1415, 'E', -1, 32)
	s4 := strconv.FormatFloat(3.1415, 'E', -1, 64)
	fmt.Println(reflect.TypeOf(s3))
	fmt.Println(reflect.TypeOf(s4))

	// int和int64
	n_10_64 := int64(11)
	fmt.Println(reflect.TypeOf(n_10_64))
	// int64 to int
	n_64_10 := int(n_10_64)
	fmt.Println(reflect.TypeOf(n_64_10))

	s := `{"id": 1, "name": "wxnacy"}`

	// 将字符串反解析为结构体
	var user User
	_ = json.Unmarshal([]byte(s), &user)
	fmt.Println(user) // {1 wxnacy}

	// 将字符串反解析为字典
	var d map[string]interface{}
	_ = json.Unmarshal([]byte(s), &d)
	fmt.Println(d) // map[id:1 name:wxnacy]

	// 将字符串反解析为数组
	s = `[1, 2, 3, 4]`
	var a []int
	_ = json.Unmarshal([]byte(s), &a)
	fmt.Println(a) // [1 2 3 4]

	// 将结构体解析为字符串
	str_user, _ := json.Marshal(user)
	fmt.Println(string(str_user))// {"id":1,"name":"wxnacy"}
	// 数组解析为字符串
	str_a, _ := json.Marshal(a)
	fmt.Println(string(str_a)) // [1,2,3,4] <nil>
	// map解析为字符串
	str_d, _ := json.Marshal(d)
	fmt.Println(string(str_d)) // {"id":1,"name":"wxnacy"} <nil>
}

  

  


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
[阅读笔记]Go语言并发之美发布时间:2022-07-10
下一篇:
Go语言学习笔记十二--Go语言切片发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap