多くの場合、ユーザーはキーボードから値を入力し、それを変数に格納してから、変数の値を取り出して操作する必要があります。このとき標準入力を使わないといけないのですが、もちろん標準出力を使わなければならないこともありますので、次は一緒に学びましょう。
1. 標準入力
1>.fmt.Scan適用事例(推奨)
import "fmt"
func main() {
var name string
var age int
/*
使用"&"获取score变量的内存地址(即取变量内存地址的运算符),通过键盘输入为score变量指向的内存地址赋初值。
fmt.Scan是一个阻塞的函数,如果它获取不到数据就会一直阻塞哟。
fmt.Scan可以接收多个参数,用户输入参数默认使用空格或者回车换行符分割输入设备传入的参数,直到接收所有的参数为止
*/
fmt.Scan(&name, &age)
fmt.Println(name, age)
}
2>.fmt.Scanln 適用事例
package main
import "fmt"
func main() {
var name string
var age int
/*
和fmt.Scan功能类似,fmt.Scanln也是一个阻塞的函数,如果它获取不到数据就会一直阻塞哟。
fmt.Scanln也可以接收多个参数,用户输入参数默认使用空格分割输入设备传入的参数,遇到回车换行符就结束接收参数
*/
fmt.Scanln(&name, &age)
fmt.Println(name, age)
}
2. 標準出力
1>.fmt.Println 適用事例
package main
import "fmt"
func main() {
name := "尹正杰"
age := 18
fmt.Println("======================")
/*
将变量的值取出来打印并换行
*/
fmt.Println(name, age)
fmt.Println("======================")
}
2>. fmt.Print 適用事例
package main
import "fmt"
func main() {
name := "尹正杰"
age := 18
fmt.Println("======================")
/*
将变量的值取出来打印但不换行
*/
fmt.Print(name, age)
fmt.Println("======================")
}
3> .fmt.Printf適用事例
package main
import "fmt"
func main() {
name := "尹正杰"
age := 18
fmt.Println("======================")
/*
常用的占位符:
%s:
表示一个字符串类型
%d:
表示一个整形类型
%T:
表示一个变量对应的数据类型
%f:
表示一个浮点数类型
%t:
表示一个布尔类型
%c:
表示一个字符类型
%p:
表示一个指针类型
\t:
表示一个制表符
\n:
表示换行符
可以使用占位符格式化打印结果,如下所示。
*/
fmt.Printf("姓名:%s\t年龄:%d\n", name, age)
fmt.Println("======================")
}