go语言-数据类型及类型之间转换
数据类型分类
一、数据类型-基本数据类型
1、整数型(int、有符号(int8/1字节、int16/2字节、int32/4字节、int64/8字节)、无符号(uint、uint8、uint16、uint32、uint64))
int--根据系统位数自动定义,系统是32位,则为int32,系统是64位,则位int64
uint--根据系统位数自动定义,系统是32位,则为uint32,系统是64位,则位uint64
2、浮点型:由符号位+指数位+位数位组成,分为float32,float64
尾数位可能会丢失,造成精度损失,不受操作系统的影响,声明默认为64位
有两种显示方式:科学计数:534e3等价于534*10的3次方,534e-3等价于534/10的3次方,e不区分大小写;小数时前面0可不写
3、布尔型:只能是true,false,占用一个字节
4、字符串
字符:单引号括起来的单个字符,需要格式化输出,%c,否则输出字符码数,
utf-8英文1个字节,中文3个字节
存储:字符-对应码数-二进制-存储
读取:二进制-对应码数-字符-读取
字符串不可修改,双引号里有转义字符会被识别,反引号里不会识别里面的转移字符
5、格式化输出符号
%c:该值对应的unicode码值
%d:表示为十进制显示
%T:值的类型
%q:该值对应的双引号括起来的go语法字符串字面值
%f:显示小数
二、数据类型-派生数据类型
指针、数组、结构体、管道、函数、切片、接口、map
数据类型转换
一、int/float/bool/字符--转换成str,用fmt.sprintf进行转换,%q展示双引号括起来的字符串面值
var(
num4 = 1
num5 = 3.44
char = 'w'
bl = true
str1 string
)
//int-->>string
str1 =fmt.Sprintf("%d",num4)
fmt.Printf("str=%q",str1)
// float-->>string
str1 = fmt.Sprintf("%f",num5)
fmt.Printf("str=%q",str1) //str-->>sting
str1 = fmt.Sprintf("%c",char)
fmt.Printf("str=%q",str) //bool-->>string
str1 = fmt.Sprintf("%t",bl)
fmt.Printf("str=%q",str1)
二、str转int/float/bool,用strconv包的函数进行转换
注意事项:
1、使用strconv包的函数,先导入strconv包,会返回两个值,第一个是value,第二个是error,一个是报错,报错不需要用_忽略掉,%v-按原类型输出
2、string类型转基本数据类型能够转成有效数据
3、如将hello转成int,不会报错,直接显示默认值0
4、如将hello转成bool,不会报错,直接显示默认值false
5、ParseBool(变量名),(值,报错)
6、ParseInt(变量名,显示进制(10进制),多少位(int8/16/32/64)),(值-int64,报错)
7、ParseFloat(变量名,位数flaot32/64),(值float64,报错)
var(
str2 = "true"
b1 bool
str3 = "122333"
n1 int64
str4 = "23.33"
n2 float64
)
//string转bool,%v是展示值的默认格式
b1,_ = strconv.ParseBool(str2)
fmt.Printf("b=%v",b1) //string转int
n1,_ = strconv.ParseInt(str3,10,64)
fmt.Printf("n1=%v",n1) //string转float
n2,_ = strconv.ParseFloat(str4,64)
fmt.Printf("n2=%v",n2)
}
go语言-数据类型及类型之间转换的更多相关文章
- javascript数据类型及类型的转换总结
javascript 是浏览器客户端脚本语言,要想让网页与后台程序更好的交互效果,这里我们详细了解javascript 数据类型及类型的转换 1,数据类型 number number类型 数字类型,浮 ...
- javaScript 基本类型之间转换
在Java中,基本类型之间的强制转换也不是这样的,比如,整数要转换成字符串,必须使用Integer.toString()静态方法或者String.valueOf()静态方法,把字符串转换为整数,必须使 ...
- java数据类型和类型得转换
java数据类型 强类型语言 Java是一种强类型得语言,严格要求变量要符合规定,所有变量都必须先定义再使用 java得数据类型分为两大类 值得注意得是String并不是一个数据类型,它是一个类 ...
- opencv中Mat与IplImage,CVMat类型之间转换
opencv中对图像的处理是最基本的操作,一般的图像类型为IplImage类型,但是当我们对图像进行处理的时候,多数都是对像素矩阵进行处理,所以这三个类型之间的转换会对我们的工作带来便利. Mat类型 ...
- Java数值类型之间转换
Java之间的数值转换如图所示,实心箭头代表无数据丢失,虚线箭头代表可能丢失 例如:123456789是一个大的整数,包含的位数比float类型能够表达的位数多,但这个数转换为float类型时,将会得 ...
- JAVA-各种类型之间转换 parse() 与valueOf()
类型互转 1.各种类型转String 2.String转Bytes 3.数组转List 4.进制转换 5. parse 在 SimpleDateFormat 中是转换为Date类,其它的一些包装类都是 ...
- Java中int和String类型之间转换
int –> String int i=123; String s=""; 第一种方法:s=i+""; //会产生两个String对象 第二种方法:s=S ...
- go byte 和 string 类型之间转换
string 不能直接和byte数组转换 string可以和byte的切片转换 1,string 转为[]byte var str string = "test" var data ...
- [ios][swift]Swift类型之间转换
http://www.ruanman.net/swift/learn/4741.html
随机推荐
- QPS、TPS、PV、UV、GMV、IP、RPS?
QPS.TPS.PV.UV.GMV.IP.RPS QPSQueries Per Second,每秒查询数.每秒能够响应的查询次数. QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准, ...
- Jenkins+maven+gitlab自动化部署之Jenkins系统管理配置(四)
一.Jenkins全局工具配置 在jenkins首页依次进入系统管理>>全局工具配置: 1) jdk.git.maven配置 指定其在服务器中的目录位置 二.插件管理 1)依次点开系统管理 ...
- 使用uiautomator 截图
1)PC与移动设备建立连接. 2)找到ADB的安装路径,双击启动uiautomator. 路径:D:\ProgramFiles\adt-bundle-windows-x86_64-20140702\a ...
- 设计模式--装饰者模式(io流中使用的模式)
重点: 1.动态扩展对象,替换之前需要继承才能实现的功能. 2.具体工作的,仍然是被包装的对象,(有点锦上添花的意思,顾名思义仅仅起到装饰的作用,主体不变). 对比继承: 1.减少类的数量. 如果使用 ...
- gulp做的前端代码压缩报错,揭示具体错误 信息
用gulp做的前端代码压缩,今天在打包的时候发现打包出错了.报的错误是--unable to minify JavaScript.但是至于为什么会不能打包,表示很困惑,然后通过一番搜索,最后得出了问题 ...
- 如何使用Class和ClassLoader加载文件
很多时候我们都需要在程序中加载各种文件,比如在加载配置文件,加载properties文件,或者只是加载一个文本文件,然后输出其中的内容,我在初学java的时候,就对加载文件非常头疼,今天又遇见了加载文 ...
- C#压缩和解压文件
这里用两种方法实现C#压缩和解压文件 1.使用System.IO.Compression名称空间下的相关类(需引用 System.IO.Compression.FileSystem和System.IO ...
- 解决Vs控制台程序出现NuGet\profile.ps1,因为在此系统上禁止运行脚本错误时或提示:“无法加载文件 \.nuget\packages\Microsoft.EntityFrameworkCore.Tools\1.1.0-preview4-final\tools\init.ps1,因为在此系统上禁止运行脚本”
1,打开Windows PowerShell 2.输入 set-executionpolicy remotesigned 即可执行脚本 如果执行命令失败的话重新选择Windows PowerShell ...
- Python 2.7.x 和 3.x 版本的重要区别小结
许多Python初学者都会问:我应该学习哪个版本的Python.对于这个问题,我的回答通常是"先选择一个最适合你的Python教程,教程中使用哪个版本的Python,你就用那个版本.等学得差 ...
- J.U.C之Condition
此篇博客所有源码均来自JDK 1.8 在没有Lock之前,我们使用synchronized来控制同步,配合Object的wait().notify()系列方法可以实现等待/通知模式.在Java SE5 ...