Go 学习笔记-常量

package main

import "fmt"

/*
 * 常量是一个简单值的标识符,在程序运行时,不会被修改的量。
 * 常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。
 * 格式:const identifier [type] = value
 *
 * [type] 可以省略,编译器可以根据变量的值来推断其类型。
 * 显式类型定义: const b string = "abc"
 * 隐式类型定义: const b = "abc"
 */

// 声明一个常量
const secondMS int = 1000

// 声明多个常量
const a, b = 1, 2

// const 支持设置多类型
const (
	ci   = 1
	cb   = false
	cStr = "string"
	cLen = len(cStr) // len 计算字符串长度
)

const (
	cs1 = "a"
	cs2 // 字符串常量只会复制上一行结果,不会自增, cs2 = "a"
	cs3 = "abc"
	cs4
)

/*
 * iota,特殊常量,可以认为是一个可以被编译器修改的常量。
 * iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),
 * const 中每新增一行常量声明将使 iota 自增加一。
 */
const (
	c1 = iota // iota 常量默认值0,后续常量将使用自增值
	c2        // iota 下一行会自增 1
	c3        // 2
	c4        // 3
)

const (
	cl1 = 1 << iota // iota 占位,默认为0
	cl2 = 2 << iota // iota 占位,当前值1
	cl3             // 常量自动继承上一行表达式,2 << iota(2)
	cl4             // 继续自增 2 << iota(3)
)

func main() {
	// c1 = 100  // 常量不允许修改

	fmt.Println("const")
	fmt.Println("secondMS", secondMS)
	fmt.Println("const diff value", ci, cb, cStr, cLen)
	fmt.Println("iota int", c1, c2, c3, c4)
	fmt.Println("iota bit(op)", cl1, cl2, cl3, cl4)
	fmt.Println("string", cs1, cs2, cs3, cs4)
}

参考链接

Go 语言常量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值