go语言变量和常量

198 阅读3分钟

「这是我参与2022首次更文挑战的第11天,活动详情查看:2022首次更文挑战」。

0 环境

  • 系统环境:win10
  • 编辑器:vscode
  • go版本:gol.17.3

1 导图

涉及变量和常量简写,以及注意事项,还有一个零值,类似Java的默认值。=后面应该改为表达式更为贴切,懒的改了。因为Go语言自备类型推导功能,简写起来很方便。而且不仅支持int类型,float64boolstring等等基础类型都是可以被自动推导的。

image.png

2 变量

变量意味着可变的数据类型,可被一次或多次修改,有点像新买的水杯,正常可被重复使用。也可以理解为海王,在某一瞬间是属于你的。

格式 var 变量名 类型 = 表达式

1 零值

当你不给变量设定一个的值的时候,自动给你一个默认值(根据类型初始值)。对了和Java中的String不一样,这里的是小写,别搞错了。

var zv int
var zv1 float64
var zv2 bool
var zv3 string
fmt.Println(zv3,zv,zv1,zv2)
fmt.Println(zv,zv1,zv2,zv3)

image.png

2 赋值

因为类型推导,在函数内可以,多个变量,用var (变量名 = 表达式 ...),或者用变量名, 变量名,... = 表达式,但是全局只能用var(xxx)var 变量名 = 表达式

函数内的用法

func variableDemo()  {
	var i int = 20
	var j = 20
	k := 20
	fmt.Println("i ==>", i," j ==>", j," k ==>", k)
	var (
		a = 1
		b = 2
		c = 3
	)
	fmt.Println("a ==>", a," b ==>", b," c ==>", c)
	e, f, d := 11, 12, 13
	fmt.Println("e ==>", e," f ==>", f,"d  ==>", d)
}

image.png

全局变量下的用法

图下可以看出,当我们在全局变量中使用:=,直接给我们提示,不能这么写。

image.png

3 常量

常量的值是指在编译期就已经确定好的,一旦确定好了之后就不能在被修改了,这样一来就可以避免在运行期被恶意篡改。和变量的区别,多了个固定(或者叫写死)。就像转行后并成功上岸,转为有编制的公务员,一旦确定了(编制),基本上是铁饭碗了。写法和变量差不多,将var变为const

只允许以下布尔型、字符串、数字类型这些基础类型作为常量

const a = "hello"

1 iota

iota 它是一个常量生成器(别和整型转字符串的方法混了),它可以被用来初始化类似规律的常量,为了避开重复的初始化。

const(
 a = 1
 b = 2
 c =3
 d =4
)

// 一样的效果
const(
 a = iota + 1
 b
 c
 d
)

总结

对于变量,可以不初始化,使用默认值(零值),也可以一次声明一个或多个变量,把要声明的多个变量放到一个括号中即可。对于常量,声明常量时(对于基础类型是有限制的),写法和变量类似,假如声明多个常量,并且具有规律性,就可以用iota来进行声明(避免烦琐的初始化)。注意::=不能用于全局变量。