golang

变量 Link to heading

变量的定义和赋值有多种方式

方式1 Link to heading

只定义不赋值,默认为0

package main

func main() {
	var a int
	println("a = %d\n", a)
}

方式2 Link to heading

package main

func main() {
	var a int = 3
	println("a = %d\n", a)
}

方式3 Link to heading

忽略类型,go会自己推断

package main

func main() {
	var a = 3
	println("a = %d\n", a)
}

方式4 Link to heading

忽略var关键字

package main

func main() {
	a := 2
	println("a = %d\n", a)
}

方式5 Link to heading

多变量声明类似于单变量声明,但是忽略var只能在函数内使用

package main

func main() {
	var x, y int

  var a, b = 345, false

  var (
    c int  = 345
    d bool = true
  )
  e, f := 555, "ggg"
}

常量 Link to heading

常量顾名思义和变量相反,不能改变值。定义和赋值方式和变量类似

const t float32 = 234.435435

const u string = "apple"

const (
	g = "amd"
	p = "intel"
)

iota关键字 Link to heading

iota是increment关键字,可以简化增长数字的定义

package main

func main() {
	const (
		a = iota
		b
		c
		d
	)
  // 0 1 2 3
	println(a, b, c, d)
	const (
		e, f = iota + 1, iota + 2
		g, h
		i, j
		k, l
	)
  // 1 2
  // 2 3
  // 3 4
  // 4 5
	println(e, f)
	println(g, h)
	println(i, j)
	println(k, l)
}