【Go】7、golang常量

  • 常量,就是在程序编译阶段就确定下来的值,而程序在运行时则无法改变该值。在Go程序中,常量可以是数值类型(包括整型、浮点型和复数类型)、布尔类型、字符串类型等
1、定义常量的语法
  • 定义一个常量使用const关键字,语法格式如下:
const constantName [type] = value

# const 定义常量关键字
# constantName:常量名称
# type: 常量类型
# value:常量的值
  • 举例:
package main

import (
	"fmt"
)

func main() {
	// 定义常量
	const PI float32 = 3.14
	const PI2 = 3.1415 // 可以省略类型
    
    // 批量定义
	const (
		a = 100
		b = 200
	)
    // 多重赋值
	const w, h = 200, 300
}
  • const同时声明多个常量时,如果省略了值则表示和上面一行的值相同
package main

import (
	"fmt"
)

func main() {
    // 同时申明多个常量,如果省略了值则表示和上面一行的值相同
	const (
		a1 = 100
		a2
		a3
	)
	fmt.Printf("a1: %v\n", a1)
	fmt.Printf("a2: %v\n", a2)
	fmt.Printf("a3: %v\n", a3)
}

# 输出结果:
    a1: 100
    a2: 100
    a3: 100
2、iota
  • iota比较特殊,可以被认为是一个可被编译器修改的常量,它默认开始值为0,每调用一次加1,遇到const关键字时被重置为0
  • 举例:
package main

import (
	"fmt"
)

func main() {
	// iota
	const (
		a1 = iota
		a2 = iota
		a3 = iota
	)
	fmt.Printf("a1: %v\n", a1)
	fmt.Printf("a2: %v\n", a2)
	fmt.Printf("a3: %v\n", a3)
	const a4 = 100
	const a5 = iota // 重0开始
	fmt.Printf("a4: %v\n", a4)
	fmt.Printf("a5: %v\n", a5)
}
# 输出结果
    a1: 0
    a2: 1
    a3: 2
    a4: 100
    a5: 0
  • 使用_跳过某些值
package main

import (
	"fmt"
)

func main() {
	// _ 跳过
	const (
		a1 = iota // 0
		_         // 1
		a2 = iota // 2
	)
	fmt.Printf("a1: %v\n", a1)
	fmt.Printf("a2: %v\n", a2)
}

# 输出结果:
    a1: 0
    a2: 2
  • iota声明中间插件
package main

import (
	"fmt"
)

func main() {
	// 中间插队
	const (
		a1 = iota //0
		a2 = 100
		a3 = iota // 1
	)
	fmt.Printf("a1: %v\n", a1)
	fmt.Printf("a2: %v\n", a2)
	fmt.Printf("a3: %v\n", a3)
}
# 输出结果:
    a1: 0
    a2: 100
    a3: 2
posted @   郭祺迦  阅读(46)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示