1 go语言中的输入操作
在go语言中我们可以通过fmt
包中的三种方法实现输入操作:
fmt.Scan()
fmt.Scanln()
fmt.Scanf()
2 fmt.Scan()
2.1 简单使用
Scan()
可以输入一个值,也可以同时输入多个值,在2.2中会说明。
//声明一个要输入的变量
var name string
fmt.Print("请输入用户名:")
//使用Scan来实现输入操作,记得括号中的变量名前面要加一个寻址符,相当于name的内存地址。Scan实现在它的内存空间中赋值,此时name的值就是我们输入的值。
fmt.Scan(&name)
fmt.Printf(name)
2.2 Scan()
的返回值
Scan()
使用时应注意以下几点:
-
在使用
Scan()
时,用户输入完成后会返回两个值- count:用户输入了几个值
- err:用户输入错误,提示错误信息
-
当输入多个值的时候,要用空格分开输入
-
若不想使用某一个返回值可以用_来接收,若两个返回值都不想要只是单纯的输入,那就直接写等号后面的即可。
-
【注意】
Scan()
要求,若要输入两个值,那就必须输入两个,若要输入三个值,那就必须是三个。否则程序会一直等待,不会执行下面的程序。
fmt.Print("please enter the userName and age:")
var userName string
var age int
count, _ := fmt.Scan(&userName, &age)
fmt.Println("the userName is:", userName, "\nthe age is:", age)
fmt.Println("user has entered", count, "values")
控制台输入liam 23
后:
please enter the userName and age:liam 23
the userName is: liam
the age is: 23
user has entered 2 values
3 fmt.Scanln()
Scan()
与Scanln()
用法与功能效果完全一样,但只有一个不同点:
Scan()
要求,若要输入两个值,那就必须输入两个,若要输入三个值,那就必须是三个。否则程序会一直等待,不会执行下面的程序;Scanln()
没有这个强制的要求,如果要求我们输入两个值,但只输入一个值,那么回车后程序依然会执行。
总结:Scan()
必须等待所要求的值输入完成才能执行程序,但是Scanln()
不管输入的数据是否完成,只要回车就直接执行。
4 fmt.Scanf()
特点:
- 它也有两个返回值count和err;
- 如果在
Scanf()
中写了两个输入值但是只输入一个,那样未输入的值就是该值类型的默认值; - 支持用户定制化输入。
fmt.Print("please enter the userName:")
var userName string
count, _ := fmt.Scanf("%s", &userName)
fmt.Println("the userName is:", userName)
fmt.Println("user has entered", count, "values")
标签:userName,Scan,Scanf,Scanln,age,fmt,输入
From: https://www.cnblogs.com/SpriteLee/p/16666006.html