Golang基础知识-01-变量和常量

变量

使用var声明变量,并初始化为零值

var i int
var a, b, c int
var (
	x int
	y string
)

指定初始值

var i int = 16
var a, b, c int = 1, 2, 3
var (
	x int = 16
	y string = "abc"
)

指定初始值时,可省略变量类型

var i = 16
var a, b ,c = 1, 2, 3

var (
	x = 16
	y = "abc"
)
// 或
var x, y = 16, "abc"

不支持 这种声明方式

var x int, y string
var x int, y string = 16, "abc"

函数内部可使用:=声明变量

func main() {
	i := 16
	a, b, c := 1, 2, 3
	println(i, a, b, c)
}

函数内部声明的变量,在未被引用时,会报错

func main() {
	i := 16 // 报错:i declared and not used
}

占位符 _

_仅用于占位

func ff() (int, string) {
	return 16, "abc"
}
func main() {
	_, s := ff()
	println(s)
}

由于仅用于占位,所以多次声明也是可以的

func main() {
	var _, a = 0, 16
	_, b := 0, 16.0
	print(a, b)
}

不能引用_的值,否则会报错

func ff() (int, string) {
	return 16, "abc"
}
func main() {
	_, s := ff()
	println(_, s) // 报错:cannot use _ as value
	i := _ // 报错:cannot use _ as value
}

可以使用var声明_,但没有什么意义

func ff() (int, string) {
	return 16, "abc"
}
func main() {
	var _ string // 没有意义
	_, s := ff() // 不会报错
	println(s)
}

如果使用:=占位,但未声明新变量会报错

func ff() (int, string) {
	return 16, "abc"
}
func main() {
	_ := 16 // 报错: no new variables on left side of :=
	_, _ := ff() // 报错: no new variables on left side of :=
	_, _ = ff() // 这样不会报错,但是也没什么意义
}

常量

使用const声明常量

const i int = 16
const i  = 16
const a, b, c int = 16, 24, 32
const a, b, c  = 16, "abc", true
const (
	x int    = 16
	y string = "abc"
)
const (
	x = 16
	y = "abc"
)

声明常量时,必须指定初始值,否则会报错

const i // 报错:missing value in const declaration
const i int // 报错:const declaration cannot have type without expression; missing value in const declaration
const x ,y = 16 // 报错: missing value in const declaration

// 特例
const (
	x = 16
	y // 取上一个变量的值 16
)

相比变量,函数内部声明的常量,在未被引用时,不会报错

func main() {
	const i = 16 // 不会报错
}
发布了8 篇原创文章 · 获赞 0 · 访问量 53

猜你喜欢

转载自blog.csdn.net/Landercy/article/details/104099962