go语言基础语法01天-4

6,常量

6.1 常量定义使用

在讲解常量之前,我们要先简单说一下我们前面讲解的变量。我们都知道,变量是用来存储数据,并且变量里面存储的值是可以在程序运行时随时发生变化的,例如如下案例,结果输出是多少?

package main

import "fmt"

func main(){
    var number int
    number = 10
    number = 20
    fmt.Println("number=",number)
}

输出
number= 20

这个程序我们前面已经做过,最终的输出结果是20,因为重新给number变量赋值。

但是,常量里面的值确定好后,后面是不允许修改的。下面看一下关于常量的定义使用:

package main

import "fmt"

func main(){
    //变量:程序运行期间,可以改变的量,变量声明需要var
    //变量:程序运行期间,不可以改变的量,常量声明需要const

    const a int = 10
    //a=20  //err,常量不允许修改
    fmt.Println("a = ",a)
    
    //自动推导类型
    const b = 11.2 //没有使用:=
    fmt.Println("b =",b)
   
}

输出:
a =  10
b = 11.2

常量的命名规范与变量命名规范一致。

问题:什么场景下会用到常量呢?

在程序开发中,我们用常量存储一直不会发生变化的数据, 例如:π,身份证号码等。像这类的数据,在整个程序中运行中都是不允许发生改变的。

6.2 字面变量

所谓字面常量(literal),是指程序中硬编码的常量,如:

123
3.1415  //浮点类型的常量
3.2+12i //复数类型的常量
true    //布尔类型的常量
"foo"   //字符串常量

6.3 iota枚举

常量声明可以使用iota常量生成器初始化,它用于生成一组以相似规则初始化的常量,但是不用每行都写一遍初始化表达式。

注意:在一个const声明语句中,在第一个声明的常量所在的行,iota将会被置为0,然后在每一个有常量声明的行加一。 具体使用方法如下:

package main

import "fmt"

func main(){
	//1,iota常量自动生成器,每个一行,自动累加1
	//2,iota给常量赋值使用
	const (
		a = iota //0
		b = iota //1
		c = iota //2
	)
	fmt.Printf("a = %d,b = %d,c = %d\n",a,b,c)
	// 3,iota遇到const,重置为0
	const d = iota
	fmt.Printf("d = %d\n",d)

	// 4,可以只写一个iota
	const(
		a1 = iota //0
		b1
		c1
	)
fmt.Printf("a1 =%d,b1 = %d,c1 = %d\n",a1,b1,c1)

    // 5、如果是同一行,值都一样
    const(
    	i         =   iota
    	j1 , j2 , j3  = iota,iota,iota
    	k         = iota
	)

fmt.Printf("i = %d,j1 = %d,j2 = %d,j3 = %d,k = %d\n",i,j1,j2,j3,k)
}

输出如下:
a = 0,b = 1,c = 2
d = 0
a1 =0,b1 = 1,c1 = 2
i = 0,j1 = 1,j2 = 1,j3 = 1,k = 2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值