2017-09-29 55 views

回答

7

fmt.Scanf()返回成功扫描的项目数:

SCANF扫描文本读取标准输入,存储连续空间分隔值成连续的参数如由格式决定。 它返回成功扫描的项目数。如果这小于参数的数量,err会报告原因。

所以,如果你输入一个有效的整数装配到一个intfmt.Scanf()会成功解析它并将其存储在n,所以它会返回1.

你是否应该输入一个无效的数字(例如string"a"),扫描就不会成功,所以0将与非nil错误在本示例中返回沿,如:

var n int 
a, err := fmt.Sscanf("a", "%d", &n) 
fmt.Println(a, err) 

哪个输出(在Go Playground上试一下):

0 expected integer 
+0

谢谢,我明白了:) –