一、注释
- 单行注释
// 我是单行注释
- 多行注释
/*
我是多行注释
我是多行注释
我是多行注释
*/
二、变量
1. var name type
(声明变量时将变量的类型放在变量的名称之后)
- var,声明变量的关键字
- name,变量的名字
- type,变量的类型
eg:
单个定义变量
var name String = "WoO"
var age int = 18
批量定义变量
var (
addr string
phone string
)
var a,b,c int
2. 变量的命名规则:驼峰命名法
首个单词小写 后面每个新单词首字母大写
eg:userFiles 、systemInfo 等
3. 如果声明变量后 没有显式的给变量赋值 系统自动赋予它该类型的默认值:
- 整形和浮点型变量的默认值为0和0.0
- 字符串变量的默认值为空字符串
- 布尔型变量默认为false
- 切片、函数、指针变量的默认为nil
4. var形式的声明语句往往是用于需要显式指定变量类型的地方
5. 上面1.中我们使用=赋值 为变量初始化的标准格式 除此之外 我们还可以用短变量声明与初始化(只能用在函数内部):
name := "WoO"
age := 18
这是Go语言推导声名写法 编译器会根据右边值的类型自动推断出左边值对应的类型
因为不能提供数据类型 所以用Printf
查看变量类型
- 注:推导声明写法的左值变量必须没有定义过(即在声明变量时就初始化变量)
若被定义过则编译错误 只能使用等号进行赋值
6. 交换变量的值
Go
var a int = 100
var b int = 200
b,a = a,b
其他语言 则需要借助临时变量temp
a = 100
b = 200
temp = 0
temp = a
a = b
b = temp
7. 打印内存地址
取地址符&
+变量名
var age int
age = 18
fmt.Printf("age:%d,内存地址:%p", age, &age)
age = 23
fmt.Printf("age:%d,内存地址:%p", age, &age) //值发生变化 但内存地址不变
8. 匿名变量 _
_
是空白标识符 可以用于变量的声明或赋值(任何类型都可以赋值给它)
但任何赋给_
的值都会被抛弃
即这些值不能在后续的代码中使用 而且也不能用_
对其他变量赋值或运算
匿名变量不占用内存空间、不分配内存(直接被丢掉了&