目录
一、GO语言的数据类型
1、布尔型
2、数字类型
1、整形
2、浮点型
其他数字类型
二、GO语言变量
1、变量声明
2、多变量声明
3、值类型和引用类型(存储方式定义分类)
值类型
引用类型
总结
4、变量的作用范围(作用域)
5、使用:=赋值操作符
6、空白标识符 _
三、GO常量
一、GO语言的数据类型
序号 | 类型和描述 |
1 | 布尔型: 布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。 |
2 | 数字类型: 整型 int 和浮点型 float32、float64,Go 语言支持整型和浮点型数字,并且支持复数,其中位的运算采用补码。 |
3 | 字符串类型: 字符串就是一串固定长度的字符连接起来的字符序列。Go 的字符串是由单个字节连接起来的。Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本。 |
4 | 派生类型: 包括: |
1、布尔型
默认的布尔值是false
定义布尔类型变量,默认值是false,全局变量最先加载
局部变量,只有使用到main方法的时候才会被加载。变量使用就近原则
2、数字类型
1、整形
Go 也有基于架构的类型,例如: int、uint和uintptr。
序号 | 类型和描述 |
1 | uint8无符号8位整型(0到255) |
2 | uint16无符号16位整型(0到65535) |
3 | uint32无符号32位整型(0到4294967295) |
4 | uint64无符号64位整型(0到18446744073709551615) |
5 | int8有符号8位整型(-128到127) |
6 | int16有符号16位整型(-32768到32767) |
7 | int32有符号32位整型(-2147483648到2147483647) |
8 | int64有符号64位整型(-9223372036854775808到9223372036854775807) |
2、浮点型
序号 | 类型和描述 |
1 | float32 IEEE-754 32位浮点型数 |
2 | float64 IEEE-754 64位浮点型数 |
3 | complex64 32位实数和虚数 |
4 | complex128 64位实故和虚数 |
其他数字类型
序号 | 类型和描述 |
1 | byte类似uint8 |
2 | rune类似int32 |
3 | uint 32或64位 |
4 | int与uint一样大小 |
5 | uintptr无符号整型,用于存放一个指针 |
二、GO语言变量
Go语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。
声明变量的一般形式是使用var关键字
1、变量声明
var v_name v_type = value
var v_name = value
v_name := value //只能在局部函数里
零值就是变量没有做初始化时系统默认设置的值。
数值类型默认 (包括complex64/128)为0
布尔类型默认为 false
字符串默认为""(空字符串)
2、多变量声明
var v_name1 v_name2 v_name3 type
vname1,vname2,vname3 = v1,v2,v3
//因式分解法
var(
test1 int
test2 float32
test3 string
)
如果变量已经使用var声明过了,再使用:=声明变量,就产生编译错误
3、值类型和引用类型(存储方式定义分类)
值类型
所有像int、float、bool 、 string以及数组和struct这些基本类型都属于值类型,使用这些类型的变量直接指向存在内存中的值
函数执行会进行压栈,压栈是先进后出原则
&i来获取变量i的内存地址
值类型变量的值存储在堆中。
引用类型
内存地址称之为指针,这个指针实际上也被存在另外的某一个值中
总结
- 值类型是内存地址不变
- 引用类型的话,内存地址是共用的
4、变量的作用范围(作用域)
1.在函数内部声明的变量叫局部变量,生命周期仅限于函数内部。
⒉.在函数外部声明的变量叫做全局变量,生命周期作用于整个包,如果是大写的(调用的意思),则作用于整个程序。
3.语句块(类似于for循环语句)中的变量,生命周期仅限于语句块。语句块外部不能被识别。
5、使用:=赋值操作符
数据类型查看用%T
是使用变量的首选形式,但是它只能被用在函数体内,而不可以用于全局变量的声明与赋值。
6、空白标识符 _
_实际上是一个只写变量,你不能得到它的值。这样做是因为Go语言中你必须使用所有被声明的变量,但有时你并不需要使用从一个函数得到的所有返回值。
空白标识符无法被调用
三、GO常量
1∶常量使用const修饰,代表永远是只读,不能修改,对值进行保护。
2:const只能修饰boolean,number (int相关类型、浮点类型、complex)和string。
3∶语法: const identifier [type] = value,其中type可以省略。