系列文章目录
跟着😽猫猫学Golang,快人一步
系列初开,跟着我走进Go 语言的世界里🌍
系列目录
Golang极速入门课一,我与Golang初相见
Golang极速入门课二,关键字、保留字与 Go语言思想
Golang极速入门课三,基本类型知多少
文章目录
😺前言
随着Golang的不断普及,国内针对Go语言的需求不断增加,但相对应的学习者与教程却并没有增多,Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易,它也是我编写最顺手的编程语言。
一、变量与常量的含义
1.变量
变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。
程序运行过程中的数据都是保存在内存中,之后我们利用变量将这个数据的内存地址保存起来,以后直接通过这个变量就能找到内存上对应的数据。
1.var 与 :=
直接声明
单个声明:
var a1 type
可以一次声明多个变量:
var a1 , a2 type
批量声明:
每声明一个变量就需要写var关键字会比较繁琐,支持批量变量声明
var (
a1 string
a2 int
a3 bool
a4 float32
)
var 关键字如果没有初始化,则变量默认为不同类型的零值,例如
整型为 0,字符串为 “”,bool值为 false
根据值自行判定变量类型
单个声明:
var a1 = 0
多个变量:
var a1 , a2 = 0 , 0
批量声明:
var (
a1 = ""
a2 = 0
a3 = false
a4 = 2.2
)
若在函数内声明时,下方表达式等同
var intVal = 1
intVal :=1
2.匿名变量
在使用多重赋值时,如果想要忽略某个值,可以使用匿名变量(anonymous variable)。 匿名变量用一个下划线_表示,例如:
func noExist2() (int, string) {
return 1, "noExist2"
}
func main() {
x, _ := noExist2()
fmt.Println("x=", x)
}
匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明。
我们当想要忽略某个值时常使用,但忽略错误时可能导致无法预知错误发生
3.注意事项
如果在相同的代码块中,我们不可以再次对于相同名称的变量使用初始化声明,例如:a := 20 就是不被允许的,编译器会提示错误 no new variables on left side of :=,但是 a = 20 是可以的,因为这是给相同的变量赋予一个新的值。
如果你在定义变量 a 之前使用它,则会报未声明的变量(undefined a)。
如果你声明了一个局部变量却没有在相同的代码块中使用它,则会报一个变量声明了但未使用 (a declared but not used)
2.常量
相对于变量,常量是一个简单值的标识符,代表恒定不变的值,多用于定义程序运行期间不会改变的那些值。
常量与变量类似
1.const
根据值自行判定变量类型
单个声明:
const pi = 3.14
多个变量:
const pi, e = 3.1415, 2.7182
批量声明:
const (
pi = 3.1415
e = 2.7182
)
若只声明一个常量的值,那么其他下方常量则为同值,即
n1 = n2 = n3 = 100
const (
n1 = 100
n2
n3
)
2.iota
iota是go语言的常量计数器,只能在常量的表达式中使用。
iota在const关键字出现时将被重置为0。const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。 使用iota能简化定义,在定义枚举时很有用。:
const (
n1 = iota //0
n2 //1
n3 //2
n4 //3
)
几个常见的iota示例:
使用_跳过某些值
const (
n1 = iota //0
n2 //1
_
n4 //3
)
iota声明中间插队
当我们再次声明 iota 时,计数器从零开始
const (
n1 = iota //0
n2 = 100 //100
n3 = iota //2
n4 //3
)
const n5 = iota //0
多个iota定义在一行
const (
a, b = iota + 1, iota + 2 //1,2
c, d //2,3
e, f //3,4
)
😽总结
🎶感谢您看到这里🎶
Golang的变量相较于其他语言的 int a 改为了 var a int,且通过语言来警告未使用的变量,将自己所存在的变量都将是存在引用的。既便于垃圾回收的查询与判断,也减少了未使用的变量挤占内存的情况。通过简短形式,使用 := 赋值操作符,也简便工作中不断声明变量的繁琐工作,当一个返回使用到多个变量时不必将这些变量单独进行声明。
希望这个博客能对你有所益处。我是轻王,我为自己代言。