在go语言中,Scan()方法用于从标准输入“os.Stdin”读取文本,即从终端获取数据。该方法会返回成功读取的数据个数和遇到的任何错误;如果读取的数据个数比提供的参数少,会返回一个错误报告原因。
本教程操作环境:windows7系统、GO 1.18版本、Dell G3电脑。
Scan系列
Go语言fmt包下有fmt.Scan、fmt.Scanf、fmt.Scanln三个函数,可以在程序运行过程中从标准输入获取用户的输入。
func Scan(a ...interface{}) (n int, err error)
func main() { var ( name string age int married bool ) fmt.Scan(&name, &age, &married) fmt.Printf("扫描结果 name:%s age:%d married:%t \n", name, age, married) }
将上面的代码编译后在终端执行,在终端依次输入小明、18和false使用空格分隔。
立即学习“go语言免费学习笔记(深入)”;
$ ./scan_demo 小明 18 false 扫描结果 name:小明 age:18 married:false
fmt.Scan从标准输入中扫描用户输入的数据,将以空白符分隔的数据分别存入指定的参数。
func Scanf(format string, a ...interface{}) (n int, err error)
func main() { var ( name string age int married bool ) fmt.Scanf("1:%s 2:%d 3:%t", &name, &age, &married) fmt.Printf("扫描结果 name:%s age:%d married:%t \n", name, age, married) }
将上面的代码编译后在终端执行,在终端按照指定的格式依次输入小明、18和false。
$ ./scan_demo 1:小明 2:18 3:false 扫描结果 name:小明 age:18 married:false
fmt.Scanf不同于fmt.Scan简单的以空格作为输入数据的分隔符,fmt.Scanf为输入数据指定了具体的输入内容格式,只有按照格式输入数据才会被扫描并存入对应变量。
例如,我们还是按照上个示例中以空格分隔的方式输入,fmt.Scanf就不能正确扫描到输入的数据。
$ ./scan_demo 小明 18 false 扫描结果 name: age:0 married:false
func Scanln(a ...interface{}) (n int, err error)
func main() { var ( name string age int married bool ) fmt.Scanln(&name, &age, &married) fmt.Printf("扫描结果 name:%s age:%d married:%t \n", name, age, married) }
将上面的代码编译后在终端执行,在终端依次输入小明、18和false使用空格分隔。
立即学习“go语言免费学习笔记(深入)”;
$ ./scan_demo 小明 18 false 扫描结果 name:小明 age:18 married:false
fmt.Scanln遇到回车就结束扫描了,这个比较常用。
推荐学习:Golang教程
以上就是go语言的scan方法有什么用的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号