Golang的标准输入输出
Golang的标准输入输出
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
在很多情况下,我们希望用户通过键盘输入一个数值,存储到某个变量中,然后将该变量的值取出来,进行操作。这时候就得用到标准输入了,当然有时候我们也得用到标准输出,接下来咱们九一起来学习一下吧。
一.标准输入
1>.fmt.Scan应用案例(推荐使用)
package main 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) }
3>.fmt.Scanf应用案例
package main import "fmt" func main() { var name string var age int /* 和fmt.Scanln功能类似,fmt.Scanf也是一个阻塞的函数,如果它获取不到数据就会一直阻塞哟。 其实fmt.Scanln和fmt.Scanf可都以接收多个参数,用户输入参数默认使用空格分割输入设备传入的参数,遇到回车换行符就结束接收参数 唯一区别就是可以格式化用户输入的数据类型,如下所示: %s: 表示接收的参数会被转换成一个字符串类型,赋值给变量 %d: 表示接收的参数会被转换成一个整形类型,赋值给变量 生产环境中使用fmt.Scanln和fmt.Scanf的情况相对较少,一般使用fmt.Scan的情况较多~ */ fmt.Scanf("%s%d", &name, &age) fmt.Println(name, age) }
二.标准输出
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("======================") }
当你的才华还撑不起你的野心的时候,你就应该静下心来学习。当你的能力还驾驭不了你的目标的时候,你就应该沉下心来历练。问问自己,想要怎样的人生。 欢迎加入基础架构自动化运维:598432640,大数据SRE进阶之路:959042252,DevOps进阶之路:526991186