Go语言常见混淆问题01--scan与scanln方法区别 - Go语言中文社区

Go语言常见混淆问题01--scan与scanln方法区别


这个问题上网搜了很久也没得到个所以然,官方文档又说的云里雾里。

于是自己动手做了一个测试。不废话,先贴代码:

------------------------------------------------------------------我是分割线------------------------------------------------------------------------

先来看scan函数的代码

    //scan
	//官方说明:scan用于检索获取空格两端的内容
	var i,j,k int;
	fmt.Scan(&i,&j,&k);
	fmt.Println(i,j,k);

而后直接运行,在控制台中输入:1 空格 2 回车。

此时在控制台中非常明显,程序并没有结束,而是等待第三个输入的内容

然后我们在控制台中继续输入3 回车

这才看到程序结束。

------------------------------------------------------------------我是分割线------------------------------------------------------------------------

再来看scanln函数

    //scanln
	//官方说明:scanln用于检索获取空格两端的内容,但不能在新行检索(即换行失效。)
	var i,j,k int;
	fmt.Scanln(&i,&j,&k);
	fmt.Println(i,j,k);

而后直接运行,在控制台中输入:1 空格 2 回车。

此时在控制台中非常明显,程序直接结束了,并没有等待第三个值的输入!

------------------------------------------------------------------我是分割线------------------------------------------------------------------------

最终结论:

scan函数会识别空格左右的内容,哪怕换行符号存在也不会影响scan对内容的获取。

scanln函数会识别空格左右的内容,但是一旦遇到换行符就会立即结束,不论后续还是否存在需要带输入的内容。

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/u013792921/article/details/84553192
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 19:39:56
  • 阅读 ( 1159 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢