go 变量
变量定义
var 变量名 变量类型
变量赋值
var 变量名 变量类型 = 变量值
变量名 := 变量值
package mainimport "fmt"func main() {var name string = "chang"fmt.Println(name)
}
package mainfunc main() {var (name stringage intsex string)println(name, age, sex)
}
package mainimport "fmt"func main() {//变量初始化并赋值,可自动识别变量类型name := "change"age := 19fmt.Printf("%T,%T", name, age)
}
打印内存地址
package mainimport "fmt"func main() {var age intage = 18fmt.Printf("age:%d,内存地址%p", age, &age)age = 24fmt.Printf("age:%d,内存地址%p", age, &age)age = 200fmt.Printf("age:%d,内存地址%p", age, &age)}
变量交换
package mainimport "fmt"func main() {var (age1 = 18age2 = 30)age1, age2 = age2, age1fmt.Println(age1, age2)
}
匿名变量
描述
匿名变量的特点是一个"_"下划线,表示空白标志符。它可以像其他变量一样用于变量的声明和赋值,但是任何赋给这个标志符的值都将被抛弃,因此该变量不能用于后续的任何计算或操作。
例子
package mainimport "fmt"func test() (int, int) {return 100, 200
}func main() {a, _ := test()_, b := test()fmt.Println(a, b)
}
变量作用域
类型
-
局部变量
在函数内定义的变量,只能在定义的函数内使用。
-
全局变量
在函数外定义的,没有其他函数包裹的变量,能被其他源文件引用。全局变量必须以var开始,如果想要在外部包中使用全局变量,全局变量必须首字母大写。
就近原则
全局变量,局部变量可以重名,但是最近的一个变量有效。
常量
- const修饰,不可以修改
- iota 常量计算器,可以理解为const语句块的元素下标
数据类型
- bool、int、float、byte、String
- 类型转换,必须显式转换(a := 3 c:= float64(a)),整型不能转换成bool理性
运算符
- 算数运算符 + - * /
- 关系运算符 == != > >= < <=
- 逻辑运算符 && || !
- 位运算符 << >>…
- 赋值运算符 += -=…