Golang极速入门课四,变量与常量

系列文章目录

跟着😽猫猫学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,且通过语言来警告未使用的变量,将自己所存在的变量都将是存在引用的。既便于垃圾回收的查询与判断,也减少了未使用的变量挤占内存的情况。通过简短形式,使用 := 赋值操作符,也简便工作中不断声明变量的繁琐工作,当一个返回使用到多个变量时不必将这些变量单独进行声明。

希望这个博客能对你有所益处。我是轻王,我为自己代言。
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫轻王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值