GO语言基础之变量
GO语言基础之变量
标识符
用来定义变量名、常量名、函数的词;由字母、数字、_、组成;只能由字母和下划线开头。
关键字
Go语言中有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
Go语言中还有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
变量
变量声明
在go语言中,变量需要先声明,而且需要指定声明的数据类型。
变量声明关键字:var
局部单独声明 var str string // 声明一个字符串类型的变量
全局批量声明 var(str string
number int
yes bool)
在go语言中定义的非全局变量必须使用,否则无法编译,这是go节约资源的机制。
变量赋值
func main(){
str = '字符串'
number = 1
yes = true
}
打印函数
func main() {
str = "字符串"
number = 1
yes = true
fmt.Printf("%s", str) // 占位打印
fmt.Println(number) // 换行打印
fmt.Print(yes) // 打印
}
变量的初始化
我们可在声明变量的时候为其指定初始值。变量初始化的标准格式如下:
var 变量名 类型 = 表达式
var str string = "字符串"
批量:
var str, number = "字符串", 1
类型推导
有时候我们会将变量的类型省略,这个时候编译器会根据等号右边的值来推导变量的类型完成初始化。
var str = "字符串"
var number = 1
短变量声明
只能在函数内部声明,可以使用更简略的 :=
方式声明并初始化变量。
package main
import (
"fmt"
)
// 全局变量m
var m = 100
func main() {
n := 10
m := 200 // 此处声明局部变量m
fmt.Println(m, n)
}
匿名变量
在使用多重赋值时,如果想要忽略某个值,可以使用匿名变量(anonymous variable)
。 匿名变量用一个下划线_
表示,例如:
(用于接受不需要的的参数,因为在go中不允许使用不到的变量被命名,所以直接用_去接收并释放掉。)
func foo() (int, string) {
return 10, "Q1mi"
}
func main() {
x, _ := foo()
_, y := foo()
fmt.Println("x=", x)
fmt.Println("y=", y)
}
匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明。 (在Lua
等编程语言里,匿名变量也被叫做哑元变量。)
注意事项:
- 函数外的每个语句都必须以关键字开始(var、const、func等)
:=
不能使用在函数外。_
多用于占位,表示忽略值。