go语言常量

wxvirus2021年10月12日
大约 1 分钟

常量概述

指的是在整个程序运行期间,它的值都不会发生改变。

定义和使用

常量的关键字:const

const constVariables1 float64 = 3.1415926

const constVariables2, constVariables3 = 100, "无解" // 编辑器编译期的一个行为

特殊的常量iota

const (
	iota1 = iota // 0
    iota2 = iota // 1
    iota3 = iota // 2
)

const iota4 = iota // 0

提示

iota在每次 const 出现的第一次的时候被重置为 0,后续的连续的会进行+1

常量的作用与应用场景

传统的编程语言中都有枚举类型,enum关键字用来声明枚举类型。go 语言中可以使用 const 来定义一个常用的枚举的内容

const (
	Monday = iota
    Tuesday
    Wednesday
    Thursday
    Friday
    Saturday
    Sunday
)

// 0 1 2 3 4 5 6  可以很好的用来表现星期对应的数字
const (
	iota1, iota2, iota3 = iota, iota, iota // 都是0
)
const (
	iota1 = iota // 0
    iota2 = "wujie" // wujie
    iota3 = iota // 2
)

提示

如果第二个不是 iota 的连续下去的,它会跳过那个数字

fmt 标准库

这里插入一个fmt标准库的记录。。。

使用fmt.Printf的通用占位符

占位符说明
%v值的默认格式表示
%+v类似%v,但输出结构体是会添加字段名
%#v值的 Go 语法表示
%T打印值的类型
%%百分号
fmt.Printf("%v\n", 100)
fmt.Printf("%v\n", false)
o := struct{name string}{"无解"}
fmt.Printf("%v\n", o)
fmt.Printf("%#v\n", o)
fmt.Printf("%+v\n", 100)
fmt.Printf("%T\n", 100)

bufio.NewReader

有时候我们想完整获取输入的内容,而输入的内容可能包含空格,这种情况下可以使用bufio包来实现

func bufioDemo() {
    reader := bufio.NewReader(os.Stdin) // 从标准输入生成读对象
    fmt.Print("请输入内容: ")
    text, _ := reader.ReadString('\n') // 读到换行
    text = strings.TrimSpace(text)
    fmt.Printf("%#v\n", text)
}
Loading...