Go语言枚举
- c语言中的枚举
enum 枚举名 {
枚举元素1 = 值,
枚举元素2 = 值,
……
};
- Go语言枚举
2.Go语句中没有明确枚举的固定写法, 但是在企业开发中一般都会常量组的形式来表示枚举
const(
枚举元素 = 值
枚举元素 = 值
)
//1.定义一个枚举常量
const (
male = 0
female = 1
)
fmt.Println(male)
fmt.Println(female)
//2.使用iota迭代器给枚举属性赋值
const (
male = iota
female =iota
)
fmt.Println(male)
fmt.Println(female)
- iota迭代器
//2.使用iota迭代器给枚举属性赋值
const (
male = iota
female =iota
)
fmt.Println(male)
fmt.Println(female)
//3.只要常量组中出现了iota, 该常量组中后续的常量都会一次递增1
const (
male = iota
female //1会依次递增
)
fmt.Println(male)
fmt.Println(female)
//4.如果常量组中的itoa被打断了, 但是后续又被回复了, 那么前面有多少行就会递增多少
//注意点: 如果被打断后,后面属性不添加iota,则后面的属性都会和打断属性那个值一样
const (
male = iota
female = 555 //555
yao = iota//2
)
fmt.Println(male)
fmt.Println(female)
fmt.Println(yao)
Go语言输出函数
-
fmt.Printf("格式化字符串", 数据列表)
- 值得注意的是,输出十进制只能通过%d,不能像C语言一样通过%i
- 除了和C语言一样,可以通过%o、%x输出八进制和十六进制外,还可以直接通过%b输出二进制
- 除此之外,Go语言还增加了%T控制符, 用于输出值的类型
package main import "fmt" func main() { type Person struct { name string age int } num1 := 10 num2 := 3.14 per := Person{"lnj", 33} fmt.Printf("num1 = %T\n", num1) // int fmt.Printf("num2 = %T\n", num2) // float64 fmt.Printf("per = %T\n", per) // main.Person }
- 除此之外,Go语言还增加了%v控制符,用于打印所有类型数据,输出复合类型时会自动生成对应格式后再输出
-
fmt.Println(数据列表)
- 采用默认格式将其参数格式化并写入标准输出
- 输出之后会在结尾处添加换行
- 传入多个参数时, 会自动在相邻参数之间添加空格
- 传入符合类型数据时, 会自动生成对应格式后再输出
package main import "fmt" func main() { num1 := 10 num2 := 3.14 fmt.Println(num1, num2) // 10 3.14 fmt.Println("num1 =", num1, "num2 =", num2) // num1 = 10 num2 = 3.14 type Person struct { name string age int } per := Person{"lnj", 33} fmt.Println(per) // {lnj 33} }
- 采用默认格式将其参数格式化并写入标准输出
Go语言输入函数
package main
import "fmt"
func main() {
/*
1.在C语言中, 我们使用scanf来接收输入的内容
2.Go语言中也可以使用scanf来接收输入的内容
但是在Go语言中还有其它更方便的函数, 也可以接收输入的内容
2.1第二种方式
fmt.Scan(地址列表)
特点: 如果接收的不是字符串类型(%c), 会忽略空格和TAB和回车, 相当于C语言的scanf
2.2第一种方式:
fmt.Scanf(格式化字符串, 地址列表)
特点: 如果接收的不是字符串类型(%c), 会忽略空格和TAB, 但是不会忽略回车
2.3第三种方式
fmt.Scanln(地址列表)
特点: 如果接收的不是字符串类型(%c), 会忽略空格和TAB, 但是不会忽略回车
*/
var num int;
var value int;
//fmt.Scanf("%d", &num)
//fmt.Scan(&num, &value)
fmt.Scanln(&num, &value)
fmt.Println(num, value)
}