变量声明
- 普通声明
//普通声明
var num1 int
num1 = 2
fmt.Println(num1)
- 类型推断
var num2 = 4
fmt.Println(num2)
- 简短声明
num3 := 8
fmt.Println(num3)
- 多变量声明
var a, b, c string
a, b, c = "a", "b", "c"
fmt.Println(a, b, c)
- 多变量声明类型推断
var j, k, l = 1, "abc", 6.6
fmt.Println(j, k, l)
- 多变量声明 集合
var (
name string
age int
)
name = "wayne"
age = 34
fmt.Println(name, age)
var (
name2 = "花茶冰糖"
age2 = 34
)
fmt.Println(name2, age2)
- 打印内存地址
var (
name3 = "花茶冰糖"
)
fmt.Println(&name3)
常量
- 声明
const C1 = "C1"
const C2 string = "C2"
- 声明一组常量,如果常量没有初始值,默认和上一行一致
const (
C3 = "C3"
C4
C5
)
println(C3, C4, C5)
- 特殊的常量iota
可以被编译器自动修改的常量,在常量组里面自动+1
println(C3, C4, C5)
const AA = iota
const BB = iota
println(AA, BB) //0 0
const (
A = iota //0
B = iota //1
C = "hh" //hh,iota=2
D = iota //3
E //4
)
const (
F = iota //0
)
println(A, B, C, D, E) //0 1 hh 3 4
println(F)
注意:
- 我这里打印中文的时候出现了空格,因为我的goland装了两个版本,参考这边文章设置好了,https://www.zdzyzy.com/detail/MTM2OA==.html
- 全局变量不能使用简短声明
- 引入包或者定义的变量没有使用会报错
- 常量不使用,也不会报错
- Go语言的枚举类型就是一组常量,常量的数据类型只能是布尔、数字、字符串
运算符
- 算术运算符
-
-
- / % ++ --
-
- 关系运算符
== != > < >= <= - 逻辑运算符
&& || ! - 位运算符
- &按位与
- |按位或
- 异或:二元,ab 相同位0,不同为1;一元^a,按位取反
- &^位清空,Go语言特有
a &^ b
对于b位上的值,如果为0,则取a上的数值,如果为1,则直接取0 -
,<< 位移运算符
a << n表示,将2机制的值,向右移动n位,也就是变成2的n次方
- 赋值运算符
=,+=,-=,*=,/=,%=,<<=,>>=,&=