2.变量、常量、运算符
注释
// 单行注释
/*
多行注释
*/
变量
标识符
在编程语言中具有特殊意义的词,如:变量名、函数名等。由下划线、字母、数字组成。只能以字母和下划线开头
关键字
25个关键字:
break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var
37个保留字:
Constants: true false iota nil
Types: int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
float32 float64 complex128 complex64
bool byte rune string error
Functions: make len cap new append copy close delete
complex real imag
panic recover
变量声明
var 变量名 变量类型
例:
var name string
var age int
var isOk bool
批量声明
var (
a string
b int
c bool
)
变量初始化
变量在声明的时候,会赋予一个初始零值(string:“”,int:0, bool:false,切片、函数、指针:nil)
在变量声明时初始化
var 变量名 类型 = 表达式
// 例:
var name string = "老王"
类型推导
go语言支持省略变量类型声明变量,这时候编译器会根据等号右边的值来推导变量类型
var name = "liming"
var age = 10
// 一次初始化多个值
var name2, age2 = "zhangsan", 18
短变量声明
在函数的内部,可以使用更简略的方式声明并初始化变量
package main
import "fmt"
func main() {
name := "liming" //(只能用在函数中)
}
匿名变量
在使用多重赋值时,如果想要忽略某个值,可以使用匿名变量,有 _ 表示
多用于占位,表示忽略值
package main
import "fmt"
func foo()(int, string){
return 10, "lisi"
}
func main() {
_, name = foo()
fmt.println(name)
}
常量
常量声明
常量是恒定不变的值,多用于定义程序运行期间不会改变的那些值,常量在定义的时候必须赋值
const pi =3.142
const e =2.718
// 批量声明
const (
a = 2
b = 3
c // 在批量声明时,遇到这种没有值的,代表和上面一行的值相同
d
)
iota
常量计数器,只能在常量的表达式中使用
iota在const关键字出现时被重置为0。const中每新增一行常量声明,iota就计数一次,可以用来定义枚举值
const(
n1 = iota//0
n2 //1
n3 //2
)
可以使用_跳过某个值
const(
_ = iota
n1 // 1
n2 // 2
)
插队的情况
const(
n1 = iota // 0
n2 // 1
n3 = 100
n4 = iota //3
)
还可以给iota加上计算
const(
_ = iota
n1 = 10*iota
)
const(
n1, n2 = iota+1,iota+2 // iota = 0, n1 = 1, n2 = 2
)
算数运算符
| 运算符 | 描述 |
|---|---|
| + | 加 |
| - | 减 |
| * | 乘 |
| / | 除(取整) |
| % | 求余 |
关系运算符
| 运算符 | |
|---|---|
| == | |
| != | |
| > | |
| >= | |
| < | |
| <= |
逻辑运算符
| 运算符 | 描述 |
|---|---|
| && | 逻辑与(AND),两边都是True则为True |
| || | 逻辑或(OR),有一边是True则为True |
| ! | 逻辑非(NOT),True为False,False为True |
位运算符
将数字转换为二进制后再操作
| 运算符 | 描述 |
|---|---|
| & | 二进制的与(两位都为1则为1) |
| | | 二进制的或(两位有一位为1则为1) |
| ^ | 二进制的异或(两位不同则为True) |
| << | 左移 |
| >> | 右移 |
a:=1 // 001
b:=5 // 101
a&b // 001=>1
a|b // 101=>5
a^b // 100=>4
1<<2 // 100=>4
4>>2 // 1 =>1
赋值运算
| 运算符 | 描述 |
|---|---|
| = | 简单的赋值运算符,将一个表达式的值赋给一个左值 |
| += | 相加后再赋值 |
| -= | 相减后再赋值 |
| *= | 相乘后再赋值 |
| /= | 相除后再赋值 |
| %= | 求余后再赋值 |
| «= | 左移后赋值 |
| »= | 右移后赋值 |
| &= | 按位与后赋值 |
| |= | 按位或后赋值 |
| ^= | 按位异或后赋值 |
a:=5
a+=1 // a = a+1=>6

浙公网安备 33010602011771号