一.定义变量
1.定义单个变量
- 完整模式:
//方式1
var varName typeName
varName = value
//方式2
var varName typeName = value
/*
var a int
a = 10
var b int = 11
*/
注:方式1不能在函数外赋值, go不支持在函数外赋值与调用操作(在声明变量时值可以初始化),否则报错expected declaration, found 'IDENT'
- 省略type:
var varName = value
/*
var c = 10
*/
go支持自动类型推导,会根据value(值)的类型自动定义varName变量的类型
- 省略var type:
varName := value
/*
d :=10
*/
自动类型推导,系统根据value的类型自动定义varName变量的类型,同样不能在函数外使用,否则报错syntax error: non-declaration statement outside function body
2.定义多个变量
- 完整模式,定义同种类型的多个变量(有两种方式)
//方式1
var varName1,varName2,varName3 typeName
varName1,varName2,varName3 =val1,val2,val3
/*
var a,b,c int
a,b,c = 1,2,3
*/
//方式2
var varName1,varName2,varName3 typeName= val1,val2,val3
/*
var a,b,c int = 1,2,3
注:方式1同上不能在函数外赋值
- 省略type,可同时定义多个不同类型的变量
var varName1,varName2,varName3 = val1,val2,val3
/*
var a,b,c = 1,"hello",false
*/
- 省略var type,可同时定义多个不同类型的变量
varName1,varName2,varName3 := val1,val2,val3
/*
a,b,c := 1,"world",true
*/
注:此方式同上,只能在函数内使用
- 下划线是一个特殊的变量,赋给它的值会被丢弃
_,varName2 := val1,val2 //丢弃val1,varName2 = val2
- 定义多个变量时还可以用()来声明,使得结构更加清晰
//方式1,声明多个变量但未赋值
var (
varName1 type
varName2 type
)
//方式2,声明多个变量并赋初值
var (
varName1 = val1
varName2 = val2
)
/*
var (
a = 1
b = "hello"
)
*/
2.定义常量
- 定义单个常量
const constName [type] = val
//const pi = 3.14
//定义常量时type可省略,编译时系统会根据值的类型自动推导出constName的类型
- 同时定义多个常量
const (
constName1 [type] = val1
constName2 [type] = val2
)
/*
const (
a = 1
b = 2
)
*/
- go语言里预定义常量有true/false/iota
网友评论