变量
- 变量:存储数据,临时性
- 数字,字母,下划线,首个字母不能为数字
变量声明
1 未初始化的标准格式
var 变量名 变量类型
var s string
2 未初始化的批量格式
func main() {
var(
b int
a string
c float32
)
fmt.Println(a,b,c)
}
整形和浮点型变量默认值:0
字符串默认值为空字符串
布尔值默认值为false
函数,指针变量初始值为null
3 初始化变量的标准格式
var 变量名 类型 = 表达式
4 编译器具有自动推断类型格式(非静态语言运行时,才知道表达式是什么数据类型)
vat 变量名 = 表达式
5初始化变量的简短声明格式(短变量声明格式)
表达式 := 表达式
使用:=赋值操作符, :=可以高效的创建一个新的变量,称之为初始化声明
省略了var关键字
变量类型由编译器自动推断
声明变量的首选形式,只能作用在函数体内部,不可以用于全局变量的声明与赋值
该变量名必须是没有定义过的变量,至少有一个新声明的变量出现在左侧中,那么即便有其他变量名可能是重复声明的,编译器也不会报错
匿名变量
匿名变量(当定义了变量之后不使用会报错,主要用于函数返回值上)
go语言的函数可以返回多个值,而事实上我们并不是对所有的返回值都用得上
那么就可以使用匿名变量,用"_"替换掉之前的变量
匿名变量不占用命名空间
不会分配内存
e, _ := "a", "b"
基本数据类型
布尔型
数字类型
字符创类型
派生类型
1. 指针
2. 数组
3. 结构化
4. Channel
5. 函数
6. 切片
7. 接口
8. Map
布尔型的值只可以是常量true或者false
===================================
整形
uint8 2的8次方
uint16 2的16次方
uint32 2的32次方
uint64 2的64次方
int8 -128到127
int16 -32768到32767
int32 -2147483648到2147483647
int64 -9223372036854775808到9223372036854775807
==================================
浮点型
float32 32位浮点型数
float64 64位浮点型数
complex64 32位实数和虚数
complex128 64位实数和虚数
==================================
byte
var a byte = 'a'
其实就是uint8的别名,代表了ASCLL码的一个字符
rune
var b rune = '一'
其实就是int32,代表一个utf-8字符,当需要处理中文等unicode字符集是需要用到rune型
常量
常量是一个简单值的标识符,在程序运行时,不会被修改的量。
常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。
1. 显式类型定义: const b string = "abc"
2. 隐式类型定义: const b = "abc"
3. 多个可以简写为:const c_name1, c_name2 = value1, value2
常量定义枚举
const (
java = iota
python
php
golang
)
fmt.Println(java,python,php,golang)
0 1 2 3
还可以参与运算
const (
java = 1 << (10 * iota)
python
php
golang
)
fmt.Println(java,python,php,golang)
}
1 1024 1048576 1073741824