3、Go的常量与运算符

课堂作业

请尝试运行以下代码,会发生什么?

func main() {
    var a int = 65
    b := string(a)
    fmt.Println(b) // 输出:A
}

string()表示把数据转换为文本格式,因为计算机中存储的任何东西本质上都是数字,string()函数自然的认为我们需要用数字65表示的文本A。

如果要转换为字符串65

package main
import (
	"fmt"
	"strconv"
)

func main() {
    var a int = 65
    b := strconv.Itoa(a)
    fmt.Println(b) // 输出:65
}

常量的定义

常量的值在编译时就已经确定
常量的定义格式与变量基本相同
等号右侧必须是常量或者常量表达式
常量表达式中的函数必须是内置函数

// 定义单个常量
const a int = 1
const b = 'A'
const (
	text = "123"
	length = len(text)
	num = b * 20
)

// 同时定义多个常量
const i, j, k = 1, "2", "3"
const (
	text2, length2, num2 = "456", len(text2), k * 10
)

常量的初始化规则与枚举

在定义常量组时,如果不提供初始值,则表示将使用上行的表达式。
使用相同的表达式不代表具有相同的值。
iota是常量的计数器,从0开始,组内每定义1个常量自动递增1。
通过初始化规则与iota可以达到枚举的效果。
每遇到一个const关键字,iota就会重置为0。

const (
	// a和b都为"A"
	a = "A"
	b
	c = iota
	d	// d的值为3
)
const (
	e = iota
	f // f的值为1
)

// 星期枚举
const (
	// 第一个常量不可省略表达式
	Monday = iota
	Tuesday
	Wednesday
	Thursday
	Friday
	Saturday
	Sunday
)

运算符

优先级(从高到低)
^、!
*、/、%、<<、>>、&、&^
+、-、|、^
==、!=、<、<=、>=、>
<- (专门用于channel)
&&、||

猜你喜欢

转载自blog.csdn.net/github_26672553/article/details/84702733