跳到主要内容

5、常量-枚举-变量定义与别名

golang之常量、枚举、变量定义与别名

image-20230205143342248

1、常量

🍀 语法

const s string = "Hello"
const a, b = 3, 4
const (
s1 = "golang"
c = 5
MAX = 10
)

//说明:
1.不指定类型的常量,则它的类型是不确定的,可以当作各种类型使用。(也就是替换)
2.常量的话,我们不使用,它也是不会报错的!
3.常量的值是不可被改变的;
4.go里,常量的值首字母要用小写(类似面向对象里的private),大写表示特殊含义(类似面向对象里的public,可导出的-->就是这个常量可以导出在外面的包里进行使用)--区别于其他编程语言;

🍀 例子

image-20230205143351062

package main

import (
"fmt"
"math"
)

// 可导出后的MAX常量
const (
s1 = "golang"
MAX = 10
)

func constDemo() {
const s string = "Hello xyy"
const a, b = 3, 4
fmt.Println(s, a, b)
var c int
c = int(math.Sqrt(a*a + b*b))
fmt.Println(c)
// max = 6
fmt.Println(s1, MAX)
}

func main() {
constDemo()
}

2、枚举

🍀 语法

枚举:
const (
Monday = 1 + iota
Tuesday
Wednesday
Thursday
Friday
Staurday
Sunday
)
//说明
1.枚举是一种特殊的常量,可以通过iota快速设置连续的值
2.枚举在生活里还是比较常见的,例如星期只能是周一到周日,人的性别只能是男/女;

🍀 案例

image-20230205143359510

package main

import (
"fmt"
)

func enumDemo() {
const (
monday = 1 + iota
tuesday
wednesday
thursday
friday
saturday
sunday
)
fmt.Println(sunday, monday, tuesday, wednesday, thursday, friday, saturday)
}

func main() {
enumDemo()

}

3、类型定义与别名

🍀 语法

类型定义与别名:

type MyInt1 int // 类型定义,工作里,这个用的比较多!
type MyInt2 = int // 类型别名

var i int = 1
var i1 MyInt1 = MyInt1(i)
var i2 MyInt2 = i

//说明
1.类型定义基于类型创建的一个新类型,主要提高代码可读性;
2.类型别名基于类型创建的一个别名,和原类型完全一样,主要用于包兼容; //1.9版本之后新增的一个特性
3.类型定义是一个新的类型了,所以类型转换的时候必须强制类型转换。

🍀 案例

image-20230205143408544

package main

import "fmt"

func typeDefAndalias() {
type MyInt1 int // 基于int定义的一个新的类型
type MyInt2 = int // MyInt2和int就是完全一样的

var i int = 1
var i1 MyInt1 = MyInt1(i)
var i2 MyInt2 = i
fmt.Println(i1, i2)
}

func main() {
typeDefAndalias()
}

🍀 注意:类型别名,工作里虽然用的少点,但是我们要知道这种语法的哦!

image-20230205143418042