数据类型的基本介绍
每一种数据都定义了明确的数据类型,在内在中分配了不同大小的内存空间
整数类型
整数类型就是用于存放整数值的,如-2,999,1等
int 的无符号类型
整型的使用细节
1,Golang各整数类型分为有符号和无符号,int uint 的大小和系统有关
2,Golang的整形默认声明为int型
3,如何在程序查看某个变量的字节大小和数据型
4,Golang程序中吃整型变量在使用时,遵守保小不保大的原则,在保证程序正确运行下,尽量使用占用空间小的数据类型
5,bit: 计算机中基本存储单元,也是最小存储单位,1byte=8bit
小数类型/浮点型
小数类型就是用于存放小数的,比如1.19,3.14
小数类型分类
浮点数在计算机中的存放形式,浮点数=符号位+指数位+尾数位
浮点数都是有符号的
尾数部分有可能丢失,造成精度不准确
float64的精度比float32的精度要准确,如果要存储一个高精度的数,应该选择用float64
浮点型的存储分类三部分:浮点数=符号位+指数位+尾数位 在存储过程中,精度会有丢失
浮点型使用细节
1,Golang浮点类型有固定的范围和字段长度 ,不受操作系统影响
2,Golang的浮点型默认声明为float64类型
3,浮点型常量有两种表示形式
十进制形式: 如3.14 (必须有小数点)
科学计数法形式: 3.1415e2 = 3.14 * 10的2次方, 3.14E-2 = 3.14/10的2次方
通常情况下,应用使用float64,因为比float32更精确
字符类型
Golang中没有专门的字符型,如果需要存储单个字符,一般使用byte来保存
字符串就是一串固定长度的字符连接真情为的字符序列,golang的字符串是由单个字节连接起来的,对于传统的字符是由字符组成,而golang的字符串不同,它是由字节组成
说明:
需要保存的字符在ASCII表的,如[0-1,a-z,A-Z] 直接可以保存到byte
如果保存的字符对应码的值大于255,可以考虑使用int类型保存
如果需要按照字符的方式输出,需要使用格式化输出fmt.Printf("i=%c ", i, )
字符类型使用细节
字体常量是用单引号 '' 括起来的单个字符,如:var i byte = 'a'
Golang中允许使用转义字符 '\' 来将字符转为特殊字符型常量 如是 var i char = '\n'
Golang字符使用UTF-8编码,英文字母一个字节,汉字三个字节
在Golang中,字符的本质是一个整数,直接输出时,对应的是UTF-8 编码值
可以直接给某个变量赋个数字,格式化输出 %c,会输出对应的unicode字符
字符类型可以进行运算,相当于一个整数,对应的有unicode码
布尔类型
布尔类型也叫bool类型,bool类型数据史允许值为true--false
bool类型占1个字节
bool类型适于逻辑运算,一般用于程序流程控制
if条件控制语句,for循环控制语句
string类型
字符串就是一串固定长度的字符连接起来的字符序列,go的字符串是由单个字节连接起来的,go的字符串字节使用UTF-8 编码标识unicode文本
sting使用细节
go的字符串字节使用UTF-8 编码标识unicode文本
字符串一旦被赋值,字符串就不能修改,在go中字符串是不可变的
字符串的两种表示形式
双引号,会识别转义符
反引号,以字符串的原生形式输出,包括换行和特殊字符,可以
字符串拼接方式
当一行字符串太长时,需要使用到多行字符串
基本数据类型的相互转换
Golang在不同类型的变量之间赋值时需要显式转换。 Golang中数据类型不能自动转换
基本语法
表达式 T(v)将值v转换为T
T: 就是数据类型,如int32 int64 float32 等
v: 就是需要转换的变量
基本数据类型转换的注意事项
Golang中,数据类型的转换可以是从表示范围小-->表示范围大,也是范围大-->范围小
被转换的是变量存储的数据值,变量本身的数据类型并没有变化
在转换中,将int64转换成int8[-128~127],编译时不会报错,只是转换的结果是按溢出处理,和希望的结果不一样,因此在转换的时候,需要考虑范围
基本数据类型和sting的转换
在开发中,经常将基本数据类型转换成string或者将string转成基本类型
1,fmt.Sprintf("%参数",表达式) 会返回转换后的字符串
2, 使用strconv包的函数
string 类型转基本数据类型
使用strconv包的函数
string转基本数据类型的注意事项
将string类型转成基本数据类型时,要确保string类型能够转成有效的数据,比如,可以奖“110” 转成一个整数,但是不能把“hi” 转成一个整数,如果这样作,Golang直接将基转成0,其它 类型也是一样的道理,float=>0,bool=>false