一:基本数据类型
1)数值型
(1)整数型
整数型有:int,int8,int16,int32,int64,uint,uint8,uint16,uint32,uint64 byte
注意事项
在Golang程序中整型(int系列)变量的使用,遵循保小不保大的原则:即在程序正常运行下,尽量使用占用空间小的数据类型
在计算机中 :
bit是计算机中最小的存储单位
byte是计算机中基本的存储单位
(2)浮点型
浮点型有:float32,float64,complex64,complex128,rune(int32别称)
注意事项
关于浮点数在机器中的存放形式得简单说明:浮点数=符号数+指位数+尾数位
Golang浮点类型中有固定的范围和字段长度
Golang浮点默认声明为float64类型
2)字符型
没有专门的字符型,使用byte来保存单个字母的字符,如果我们保存的字符在ASCII表中,则可以保存在byte中,如果我们要保存的字符对应的数值大于255,则可以用int
在Golang语言中字符都是按照UTF-8编码
字符是可以进行加减乘除
如果我们需要按照字符的方式输出,这时候我们需要格式化输出。即fmt.Printf("%c",c1)
3)布尔型(bool)
(1)布尔类型也叫bool类型,bool类型只允许取值true和false
(2)bool类型占一个字节
(3)boolean类型适于逻辑运算,一般用于程序流程控制
(4)不可以用0/1代替
4)字符串型
字符串的使用细节
字符串一旦赋值了,字符串就不能被修改了,但在Golang中字符串是不可变,当时可以重新赋值
字符串的拼接方式
用+号拼接
当一个拼接的操作符很长时怎么办,这时候要注意+号的位置
var str1="sbf"+
"s"
而不是 var str1="sbf"
+"s"
二:派生/复杂数据类型(以后介绍)
1)指针(Pointer)
2)数组
3)结构体(struct)
4)管道(chanel)
5)函数(函数也是一种数据类型)
6)切片(slice)
7)接口(interface)
8)map
三:如何查看某个变量的基本数据类型
利用fmt包下的Printf来进行格式化输出
例子:
fmt.Printf("n1的数据类型……%T",n1)
%T 数据类型
%d是输出一个数
fmt.Printf("n1的字节数",unsafe.Sizeof(n1))
unsfe.Sizeof(n1) 返回的是一个变量所占的字节数
四:基本数据类
数据类型 | 默认值 |
整型 | 0 |
浮点型 | 0 |
字符串 | “” |
布尔型 | false |
五:基本数据类型的转化
介绍:
Golang和java/c不同,Go在不同类型的变量之间赋值时需要显式转换,也就是说Golang中数据类型不能自动转换
基本语法:
表达式T(v) 将值v转换为类型T,这里的T和V不可以是string,string的转换有其它方法
T:就是数据类型,比如int int32等的
v:就是需要转换的变量
细节转换
(1)在go中,数值类型的转换可以从表示范围小到表示范围大的,也可以范围大到小
(2)被转换的变量存储的数据(即值),变量本身的数据类型没有发生变化。参考值传递
(3)大转小,只是按溢出处理
六:基本数据转string
方式1:fmt.Sprintf("%参数",表达式)
例如:var num1 int=99
var str string
str=fmt.Sprintf("%d",num1)
方式2;使用strconv包的函数
1.Atoi: 字符串转整数
2.Itoa: 整数转字符串
3.Format系列函数:基本数据类型转字符串
FormatInt
:int
类型转换为字符串FormatFloat
:float64
类型转换为字符串FormatBool
:bool
类型转换为字符串
例子:
numInt := 42
strInt := strconv.FormatInt(int64(numInt), 10)
七:string转基本数据类型
利用strconv包
Parse系列函数:字符串转基本数据类型
ParseInt
: 字符串转换为int
类型ParseFloat
: 字符串转换为float64
类型ParseBool
: 字符串转换为bool
类型- ...
注意细节
在string类型转化基本数据类型时需要确保string类型转化成有效的数据类型,但是不能将“Hello”转化成一个整数,如果这样做,Golang会直接将其转为0