fmt
func Scan(a ...interface{}) (n int, err error)

使用第1种方法可以很方便地获取用户输入的数据:

package main

import "fmt"

func main() {
	var name string
	var age byte
	var score uint8
	var isPass bool
	fmt.Println("请输入你的姓名、年龄、考试成绩、是否合格:")
	_, _ = fmt.Scan(&name, &age, &score, &isPass) // 输入一个后回车再输入下一个
	fmt.Printf("姓名:%v\n年龄:%v\n成绩:%v\n是否合格:%v\n", name, age, score, isPass)
}

func Scanln(a ...interface{}) (n int, err error)

使用第2种方法只能写多条输入语句:

package main

import "fmt"

func main() {
	var name string
	var age byte
	var score uint8
	var isPass bool
	fmt.Println("请输入你的姓名、年龄、考试成绩、是否合格:")
	// 输入一个后回车再输入下一个
	_, _ = fmt.Scanln(&name)
	_, _ = fmt.Scanln(&age)
	_, _ = fmt.Scanln(&score)
	_, _ = fmt.Scanln(&isPass)
	fmt.Printf("姓名:%v\n年龄:%v\n成绩:%v\n是否合格:%v\n", name, age, score, isPass)
}

使用第2种方法输入时也可以用空格隔开,但是如果想要输入的字符串中有空格,那么此方法就失效:

package main

import "fmt"

func main() {
	var name string
	var age byte
	var score uint8
	var isPass bool
	fmt.Println("请输入你的姓名、年龄、考试成绩、是否合格:")
	// 输入时用空格隔开,输入完毕按回车确认
	_, _ = fmt.Scanln(&name, &age, &score, &isPass)
	fmt.Printf("姓名:%v\n年龄:%v\n成绩:%v\n是否合格:%v\n", name, age, score, isPass)
}

func Scanf(format string, a ...interface{}) (n int, err error)

使用第3种方法可以按我们想要的格式输入数据:

package main

import "fmt"

func main() {
	var name string
	var age byte
	var score uint8
	var isPass bool
	fmt.Println("请输入你的姓名、年龄、考试成绩、是否合格:")
	// 格式化输入,我们可以自己决定输入格式,但是[输入字符串]与[输入其它]最好分开写
	// 比如我们用','隔开输入,当我们输入完姓名后敲入','隔开,这是失效的,因为它把','也当作姓名的一部分了
	// 不过我们用空格隔开就不会有这种问题
	_, _ = fmt.Scanf("%s %d %d %t", &name, &age, &score, &isPass)
	fmt.Printf("姓名:%v\n年龄:%v\n成绩:%v\n是否合格:%v\n", name, age, score, isPass)
}