fmt.Scan(“%d“, &num)

这是一种“错误”的书写方式

观察下面两种方式,有什么不同?

fmt.Scan("%d", &num)
fmt.Scan(&num)

第一种是错误的,其使用 Scan 获取输入,但是却采用了 Scanf 的写法;第二种方式是正确的。

在这两个示例中,有一个关键区别:fmt.Scan 函数不使用格式字符串,而 fmt.Scanf 函数使用格式字符串。但是我们在第一个示例中使用了 fmt.Scan,并提供了一个格式字符串,这是不正确的。下面是正确的使用方法:

使用 fmt.Scan:

var num int
fmt.Scan(&num)

fmt.Scan 会从输入中读取以空格或换行符分隔的值,并将其存储在提供的变量中。在这个例子中,fmt.Scan 将尝试从输入中读取一个整数,并将其存储在 num 变量中。您不需要提供格式字符串。

使用 fmt.Scanf:

var num int
fmt.Scanf("%d", &num)

fmt.Scanf 函数使用格式字符串来读取输入。在这个例子中,“%d” 格式字符串表示我们期望从输入中读取一个整数。fmt.Scanf 将按照格式字符串中指定的格式读取输入,并将读取到的整数存储在 num 变量中。

总结一下,第一个示例中的代码是不正确的,因为 fmt.Scan 函数不需要格式字符串。正确的做法是使用 fmt.Scan(&num) fmt.Scanf("%d", &num)

猜你喜欢

转载自blog.csdn.net/qq_35760825/article/details/129975744
num