1、关键字
关键字是指编程语言中预先定义好的具有特殊含义的标识符。 关键字和保留字都不建议用作变量名。
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
2、变量
变量类型:整型、浮点型、布尔型等
Go语言中的每一个变量都有自己的类型,并且变量必须经过声明才能开始使用。
2.1、声明变量
普通声明变量
变量声明以关键字var
开头,变量类型放在变量的后面,行尾无需分号。
var 变量名 数据类型
需要一个一个的指定变量,并且还需要指定数据类型
var name string
var age int
var isOk bool
定义一个变量列表,类型在后面
var c,python,vue bool
全局声明变量
全局方式声明变量可以不被调用
var (
name string // ""
age int // 0
isOk bool // false
)
2.2、变量赋值
首先需要声明变量var 变量名 变量类型
,而后在根据变量名进行赋值变量名=值
常规方法
package main
import "fmt"
// 批量声明
var (
name string
age int
isOk bool
)
func main() {
name = "jack"
age = 21
isOk = true
// Go语言中非全局变量声明后必须使用,不使用就编译不过去
fmt.Print(isOk) // 在终端输出要打印的内容
fmt.Println()
fmt.Printf("name: %s
",name) // %s 占位符 使用name这个变量的值去替换占位符
fmt.Println(age) // 打印完指定的内容之后会在后面加一个换行符
// 声明变量同时赋值
var s1 string = "王"
fmt.Println(s1)
// 类型推导(根据值判断该变量是什么类型)
var s2 = "20"
fmt.Println(s2)
}
2.3、声明短变量
可省略var,注意:=
左侧如果没有声明新的变量,就产生编译错误,必须在函数里使用,格式:
变量名 := 值
实例:
name := "jack"
2.4、匿名变量
在使用多重赋值时,如果想要忽略某个值,可以使用匿名变量
。匿名变量用一个下划线_
表示,例如:
func foo() (int, string) {
return 10, "Jie"
}
func main() {
x, _ := foo()
_, y := foo()
fmt.Println("x=", x)
fmt.Println("y=", y)
}
匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明
注意事项:
1.函数外的每个语句都必须以关键字开始(var,const,func等)
2.:=不能使用在函数外
3._多用于占位,表示忽略值
3、常量
相对于变量,常量就是恒定不变的值,多用于定义程序运行期间不会改变的那些值。常量的声明和变量的声明非常类似,只是把var
换成了const
,
const pi =3.124532
批量声明常量
const (
statusOK = 200
notFound = 404
)
特殊声明常量
批量声明常量时,如果某一行声明后没有赋值,默认值就和上一行一致
const (
n1 = 100
n2
n3
n4 = 101
n5
)
4、iota
iota
是Go语言的常量计数器,只能在常量的表达式中使用
iota
在const关键字出现时被重置为0,const中每新增一行常量声明将使iota
计数一次(isto可理解为const语句块中的行索引)。使用iota能简化定义,在定义枚举时很有用。
举个例子
const(
a1 = iota // 0
a2 // 1
a3 // 2
)
几种常见的iota示例
使用_
跳过某些值
const (
b1 = iota // 0
b2 // 1
_
b3 // 3
)
iota
声明中间插队
const (
c1 = iota // 0
c2 = 100 // 100
c3 = iota // 2
c4 // 3
)
多个iota
定义在一行
const (
d1,d2= iota + 1,iota + 2 // d1:1,d2:2
d3,d4= iota + 1,iota + 2 // d3:2,d4:3
)
定义数量级
const (
_ = iota
KB = 1 << (10*iota)
MB = 1 << (10*iota)
GB = 1 << (10*iota)
TB = 1 << (10*iota)
PB = 1 << (10*iota)
)