【Go语言】变量/常量使用注意事项,iota 的特性,局部、全局变量/常量声明方式详细整理

本文详细介绍了Go语言中变量和常量的声明方式及注意事项,包括全局变量和局部变量的不同声明形式,以及const关键字的使用,如iota的递增规则和默认赋值行为。此外,还强调了未使用的变量会引发错误,以及如何通过a,b=b,a的方式交换变量值。
摘要由CSDN通过智能技术生成

注意事项!

1、全局变量/常量允许声明但不使用,局部变量/常量声明后必须使用,不然报错:a declared but not used

2、如果你想要交换两个变量的值,则可以简单地使用 a, b = b, a,两个变量的类型必须是相同

3、空白标识符 _ 也被用于抛弃值,_ 实际上是一个只写变量,如值 5 在:_, b = 5, 7 中被抛弃

4、const 声明常量,var 声明变量, := 简写形式默认是声明变量

5、常量表达式中,函数必须是内置函数,否则编译不过,例如:

const (
    a = "abc"
    b = len(a)
    c = unsafe.Sizeof(a)
)

6、const 常量自动赋值,iota 从 0 开始,每赋值一个 iota,则 iota 加 1(iota 只是在同一个 const 常量组内递增,每当有新的 const 关键字时,iota 计数会重新开始)

const (
	a = iota //0
	b = iota //1
	c = iota //2
)

也可简写为

const (
	a = iota //0
	b        //1
	c        //2
)

iota 间隔赋值,等价于当前 const 内部的赋值语法行的索引

const (
	a = 2
	c = iota //1
	b = 2
	d = iota //3
)

在这里插入图片描述

7、const 常量若不赋值,会默认使用紧邻上一行的值,若上一行没有值,则报错

const (
	a = 1
	b //默认使用上面的值 1
)

同理,也可以推广为

const (
	a = 0
	b //默认使用上面的值 1
	c = 2
	d //默认使用上面的值 2
)

全局变量:声明方式整理

//=====方式 1
//var x int = 2

//=====方式 2
//var a, b int = 1, 2

//=====方式 3
//var a, b = 1, 2

//=====方式 4
//var a, b = 1, "b"

//=====方式 5
//var (
//	a int = 1
//	b int = 2
//)

//=====方式 6
//var (
//	a = 1
//	b = 2
//)

局部变量:声明方式整理

//=====方式 1
//var x int
//x = 2

//=====方式 2
//var x int = 2

//=====方式 3
//x := 2

//=====方式 4
//var a, b int = 1, 2

//=====方式 5
//var a, b = 1, 2

//=====方式 6
//var a, b = 1, "b"

//=====方式 7
//a, b := 1, 2

//=====方式 8(一般用于声明全局变量)
//var (
//	a int = 1
//	b int = 2
//)

//=====方式 9(一般用于声明全局变量)
//var (
//	a = 1
//	b = 2
//)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

超周到的程序员

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

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

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

打赏作者

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

抵扣说明:

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

余额充值