Task 03 变量、常量、枚举

本文详细介绍了Go语言中的变量、常量和枚举。变量可以通过var关键字声明,支持多种声明方式,并有默认零值。常量使用const定义,其值在程序运行期间不可改变。Go语言虽然没有内置的枚举类型,但可以通过其他方式实现类似功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.变量

变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。
声明变量的一般形式是使用var关键字:

var name type

可以一次声明多个变量。
实例:

package main
import "fmt"
func main(){
	var a string = "hello,world"
	fmt.Println(a)

	var b, c int = 1, 2
	fmt.Println(b, c)
}

输出;

hello,world
1 2

变量声明
第一种,指定变量类型,如果没有初始化,则变量默认为零值。

var v_name v_type
v_name = value

  • 数值类型(包括complex64/128)默认为0;
  • 布尔型默认为false;
  • 字符串默认为""(空字符串);
  • 以下类型默认为nil:

var a *int
var a []int
var a map[string] int
var chan int
var a func(string) int
var a error // error 是接口

第二种,根据值自行判定变量类型。

var v_name = value

第三种,省略var,注意:=左侧如果没有声明新的变量,就产生编译错误。

v_name := value

多变量声明

//类型相同多个变量, 非全局变量

var vname1, vname2, vname3 type vname1, vname2, vname3 = v1, v2, v3

var vname1, vname2, vname3 = v1, v2, v3 // 和 python 很像,不需要显示声明类型,自动推断

vname1, vname2, vname3 := v1, v2, v3 // 出现在 :=
左侧的变量不应该是已经被声明过的,否则会导致编译错误

// 这种因式分解关键字的写法一般用于声明全局变量 var (
vname1 v_type1
vname2 v_type2 )

2.常量

常量是一个简单值的标识符,在程序运行时,不会被修改的量。常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。
常量的定义格式:

const identifier [type] = value

常量可以用len(), cap(), unsafe.Sizeof()函数计算表达式的值。常量表达式中,函数必须是内置函数,否则编译不过。
iota,特殊常量,可认为是可以被编译器修改的常量。在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。第一个 iota 等于 0,每当 iota 在新的一行被使用时,它的值都会自动加 1;

3.枚举

枚举,将变量的值一一列举出来,变量只限于列举出来的值的范围内取值。Go语言中没有枚举这种数据类型的,但是可以使用const配合iota模式来实现。
枚举分为普通枚举和自增枚举。

参考:
DatawhaleChina
菜鸟教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值