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>
}

  

  

Go语言中各种数据格式转换的更多相关文章

  1. 【转】在Python的struct模块中进行数据格式转换的方法

    这篇文章主要介绍了在Python的struct模块中进行数据格式转换的方法,文中还给出了C语言和Python语言的数据类型比较,需要的朋友可以参考下 Python是一门非常简洁的语言,对于数据类型的表 ...

  2. java语言中数值自动转换的优先顺序

    转换原则:从低精度向高精度转换byte .short.int.long.float.double.char数据类型的转换,分为自动转换和强制转换.自动转换是程序在执行过程中“悄然”进行的转换,不需要用 ...

  3. Go语言中的数据格式(json、xml 、msgpack、protobuf)

    在分布式的系统中,因为涉及到数据的传输,所以一定会进行数据的交换,此时就要定义数据交换的格式,例如二进制.Json.Xml等等.本篇文章就是总结一下常用的几种数据格式. 一.Json格式 如果想使用J ...

  4. c语言中类型隐性转换的坑

    谨记:在C语言中,当两种不同类型之间运算时,低字节长度类型会向高自己长度类型转换,有符号会向无符号类型转换. 举例子如下: #include <stdio.h> void func(voi ...

  5. SpringMVC中Json数据格式转换

    1    @RequestBody 作用: @RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容转换为 ...

  6. C#中的数据格式转换 (未完待更新)

    一.string to int int intA = 0;1.intA =int.Parse(str);2.int.TryParse(str, out intA);3.intA = Convert.T ...

  7. C语言中格式化输出的转换说明的fldwidth和precision解析

    首先说什么是C语言的格式化输出,就是printf和它的几个变种(grep -E "v?(sn|s|f)printf").像这些函数都有一个参数format,format中可以加点转 ...

  8. 页面输入的数据格式转换类:BaseAction(经常使用于Struts框架中)

    在我们接收页面传来的数据时,这些数据都是以String类型接收的,所以要进行数据格式转换,这时候就能够统一为它们进行转换,并且在处理这些数据的类中能够继承ActionSupport类,然后让每个接收数 ...

  9. C++ 语言中的重载、内联、缺省参数、隐式转换等机制展现了很多优点

    C++ 语言中的重载.内联.缺省参数.隐式转换等机制展现了很多优点,但是这些 优点的背后都隐藏着一些隐患.正如人们的饮食,少食和暴食都不可取,应当恰到好处. 我们要辨证地看待 C++的新机制,应该恰如 ...

随机推荐

  1. 【antd】如何自定义antd组件form表单中Form.Item里的内容组件

    需求:现有一个form表单,但是其中一个元素比较复杂,并不是简单的输入框或者下拉框之类的.但是我又希望能通过form.validateFields().then()去获得它的值,就不需要在当前页面写大 ...

  2. bjdctf_2020_babyrop2(没有成功拿到shell)

    看到程序先例行检查一下 可以看到开启了canary和nx保护,需要注意的是这个acnary 将程序放入ida中shift+f12 没有关键性函数.我们进入main函数中 在main的gift程序里面我 ...

  3. CF544A Set of Strings 题解

    Content 有一个长为 \(n\) 的字符串 \(q\),试问能否将其划分为 \(k\) 个子串,使得每个子串的首字母都不相等,可以的话输出 \(\texttt{YES}\) 并输出任意一个方案, ...

  4. CF433B Kuriyama Mirai's Stones 题解

    Content 有一个长度为 \(n\) 的数组 \(a_1,a_2,a_3,...,a_n\).有 \(m\) 次询问,询问有以下两种: \(1~l~r\),求 \(\sum\limits_{i=l ...

  5. ligerui的jquery.validate验证需要添加validate="{required:true,minlength:8,equalTo:'#newpassword'}"

    ligerui的jquery.validate验证需要添加validate="{required:true,minlength:8,equalTo:'#newpassword'}"

  6. Pointcut 表达式

    AOP 概念篇 今天介绍 Pointcut 的表达式 通配符 常见的通配符如下 .. 含义一:方法表达式中.代表任意数量的参数 @Service public class HelloService { ...

  7. SpringBoot项目使用Caffeine本地缓存

    环境配置:(或以上版本,必须) JDK 版本:1.8  Caffeine 版本:2.8.0SpringBoot 版本:2.2.2.RELEASE 也可以不与SpringBoot结合 1.添加maven ...

  8. 使用iframe内嵌PC网站实现高度自适应

    加个样式 <style> iframe { display: block; border: none; height: 90vh;/*设置高度百分比,一直调到只有一个滚动调为止*/ wid ...

  9. 【LeetCode】469. Convex Polygon 解题报告(C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 计算向量夹角 日期 题目地址:https://leet ...

  10. 【LeetCode】1099. Two Sum Less Than K 解题报告(C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 暴力求解 日期 题目地址:https://leetco ...