社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
这个问题上网搜了很久也没得到个所以然,官方文档又说的云里雾里。
于是自己动手做了一个测试。不废话,先贴代码:
------------------------------------------------------------------我是分割线------------------------------------------------------------------------
先来看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函数会识别空格左右的内容,但是一旦遇到换行符就会立即结束,不论后续还是否存在需要带输入的内容。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!