变量的数据类型
1、基本数据类型
1)、数值型
-
整数类型 int、int8、int16、int32、int64、unit、unit8、unit6、unit32、unit64、byte 整型的使用细节:
a、Golang 个整数类型分:有符号和无符号,int、unit的大小和系统有关。
b、Golang 的整数默认声明为int型。
c、如何在程序中查看某个变量的字节大小和数据类型:
fmt.Printf(“i 的数据类型:%T,i 占用的字节数是:%d”, i, unsafe.sizeof(i))。
d、Golang程序中整型变量在使用时,遵守保小不保大的原则,即:在保证程序正确运行下,尽量使用占用空间小的数据类型。【如:年龄】
e、bit:计算机中的最小存储单位。byte:自算计中基本存储单元。1byte = 8bit
-
浮点类型 float32、float64
小数类型就是用来存放小数的。 浮点型使用细节:
a、Golang 浮点类型有固定的范围和字段长度,不受具体OS(操作系统)的影响。
b、Golang 的浮点型默认声明为float64
c、浮点型常量有两种表示形式
十进制数形式,如:3.14、0.12、.512(必须有小数点)
科学计数法形式,如:5.1234e2 = 5.1234*10的2次方,5.12E-2 = 5.12/10的2次方
d、通常情况下,应该使用float64, 因为它比float32更精确。
2)、字符
Golang 中没有专门的字符类型,如果要存储单个字符(字母),一般用byte来保存。
字符串就是一串固定长度字符连接起来的字符序列。Golang 的字符串是由单个字节连接起来组成的。也就是说对于传统的字符串是由字符组成,而Go的字符串不同,它是由字节组成的。 a)、如果我们保存的字符在ASCII表的,比如[0-9,a-z,A-Z]直接可以保存到byte
b)、如果我们保存的字符对应的码值大于255,这时我们可以考虑使用int类型保存
c)、如果我们需要按照字符的方式输出,这时我们就需要格式化输出,即:fmt.Printf("%c", c1)
3)、布尔型
a)、布尔类型也叫bool类型,只允许取值true和false
b)、bool类型占用1个字节
c)、bool类型适用于逻辑运算,一般用于流程控制。
4)、字符串类型
字符串就是一串固定长度字符连接起来的字符序列。Golang 的字符串是由单个字节连接起来组成的。Go语言的字符串的字节使用UTF-8编码标识Unicode文本。
字符串类型使用细节:
a)、Go语言的字符串的字节使用UTF-8编码标识Unicode文本,同意使用UTF-8编码,中文乱码问题就不会困扰程序员。
b)、字符串一旦被赋值,就不能修改:在Go中字符串是不可变的。
c)、字符串的两种表现形式
基本数据类型的默认值 基本数据类型的转换
Go 在不同数据类型变量之间赋值时需要显式转换。也就是说Golang中数据类型不能自动转换。
基本语法:
表达式T(v) 将值 v 转换为类型 T
T:就是数据类型,比如:int32、int64、float32等。
v:就是需要转换的变量。
数据类型转换细节说明:
- Go中,数据类型的转换可以是从表示范围小的转换为表示范围大的,反过来也可以。
- 被转换的是变量存储的数据(值),变量本身的数据类型并没有变化。
- 在转换中,比如讲int64转换成int8,编译时不会报错,只是转换的结果是按溢出处理,和我们希望的结果不一样
基本数据类型和string的转换
- 方式一:fmt.Sprintf("%参数", 表达式)
1)、参数需要和表达式的数据类型匹配
2)、fmt.Sprintf(),会返回转换后的字符串
- 方式二:使用 strconv 包的函数
string专程基本数据类型
- 使用 strconv 包的函数
- 在将String类型转换成基本数据类型时,要确保String类型能够转成有效的数据,比如我们直接把“123”转成一个整数,但是不能把“hello”转成一个整数,如果这样做,Go直接将其转成0
2、派生 / 复杂数据类型
1)、指针
- 基本数据类型,变量存的就是值,也叫值类型。
- 获取变量的地址,用&,比如:var num int,获取num的地址:&num。
- 指针类型,指针变量存的是一个地址,这个地址指向的空间存的才是值,比如:var ptr *int = &num
- 获取指针类型所指向的值,使用:
* , 比如:var *ptr int ,使用 *ptr 获取p指向的值。
指针类型细节说明:
- 值类型,都有对应的指针类型,形式为
*数据类型 ,比如 int 的指针就是 *int ,float32对应的指针类型就是*float32 ,以此类推。
- 值类型包括,基本数据类型int系列,float系列,bool,string,数组和结构体struct。
值类型和引用类型
- 值类型:基本数据类型int系列、float系列、bool、string、数组、struct。
- 引用类型:指针、slice切片、map、管道channel、interface等都是引用类型。
标识符的命名规范
2)、数组
3)、结构体(struct)
4)、管道(channel)
5)、函数(也是一种类型)
6)、切片(slice)
7)、接口(interface)
8)、map
|
请发表评论