Go 基础数据类型使用实战:int float bool
int
定义 int 类型
输出结果:
注意:%T 查看变量的类型
进制转化
输出结果:
定义八进制
八进制一定是以 0 开头的,逢八进一位
输出结果
定义十六进制
从 0 到 f,逢十六进一
输出结果
总结:我们发现直接定义十进制、八进制、十六进制的变量,变量的类型都是 int 型。
抛出问题
我们怎么定义 int8/int16/int32/int64 类型的数据呢?
其实非常简单:
输出结果:
抛出问题:go 有这么多种 int 类型,我们怎么选择使用哪种呢?
给出答案:
我们首先要知道这些类型的区别:
int8 类型大小为 1 字节
int16 类型大小为 2 字节
int32 类型大小为 4 字节
int64 类型大小为 8 字节
int 类型的大小为 4 个字节 或者 8 个字节
其中 int 类型要重点说一下:go 语言中的 int 的大小是和操作系统位数相关的,如果是 32 位操作系统,int 类型的大小就是 4 字节。如果是 64 位操作系统,int 类型的大小就是 8 个字节。
由此我们可以知道,根据自己需要的字节数来选择,当然选择 int 类型是最省心安全的,但是当我们取值范围小的时候,会浪费存储空间。
float
go 中的 float 可以细分为:float32 和 float64
定义 float
输出结果:
分析:在未指定类型定义 float 时,默认的类型是 float64。和 int 类型的定义是一致的。
反思:这种设计我们也可以很好理解,出于数据安全的考虑,设置数据类型对应的最大内存空间的类型,避免内存溢出等问题。
定义 float32 类型
聪明的你一定会想到,和定义 int8 是一样的
输出结果:
小技巧
我们可以通过内置的 Math 函数,获得常用的数值,比如:
输出结果:
注意
在 go 中,数据类型是有严格的区分的,不同类型之间是不能互相转换的,比如:
bool 类型
定义
输出结果:
默认值为 false
输出结果:
总结
Go 语言中对类型有严格的要求,不同类型之间不能直接转换,哪怕 int8/int16 之间也不能转换。
声明变量同时赋值的方式,如果没有指定明确的数据类型,会默认使用
范围大
的类型,比如:int、float64、false
一起学习,升级打怪
我们搞了一个对学 Go 真正有帮助的群,欢迎加入:
公众号:程序员升级打怪之旅
微信号:wangzhongyang1993
版权声明: 本文为 InfoQ 作者【王中阳Go】的原创文章。
原文链接:【http://xie.infoq.cn/article/4c1baf062391f069f9e651c2a】。文章转载请联系作者。
评论 (1 条评论)