gpt4 book ai didi

parallel-processing - 我如何在 Go 中使用 fmt.Scanf

转载 作者:IT王子 更新时间:2023-10-29 01:25:40 30 4
gpt4 key购买 nike

在 go 中的 for 循环中获取用户输入时,我似乎遇到了一个奇怪的问题。这是我的 code

package main

import "fmt"

func main() {
var num int
for i := 0; i < 10; i++ {
fmt.Printf("Debug: i : %d ", i)
fmt.Scanf("%d", &num)
fmt.Println(num)
}
}

当我运行这段代码时会发生什么:

Debug: i : 0
Enter next number
1
1
Debug: i : 1
Enter next number
1
Debug: i : 2
Enter next number
2
2
Debug: i : 3
Enter next number
2
Debug: i : 4
Enter next number
3
3
Debug: i : 5
Enter next number
3
Debug: i : 6
Enter next number
4
4
Debug: i : 7
Enter next number
4
Debug: i : 8
Enter next number
5
5
Debug: i : 9
Enter next number
5

我注意到循环的每次迭代都发生了两次,这可能是因为 Go 默认使用并行性并导致两个处理器在 for 循环中运行代码吗?

最佳答案

您使用的是什么操作系统? window ?

试试这个:

package main

import "fmt"

func main() {
var num int
for i := 0; i < 10; i++ {
fmt.Printf("Debug: i : %d\n", i)
fmt.Println("Enter next number")
n, err := fmt.Scanf("%d\n", &num)
if err != nil {
fmt.Println(n, err)
}
fmt.Println(num)
}
}

输出:

Debug: i : 0
Enter next number
1
1
Debug: i : 1
Enter next number
2
2
Debug: i : 2
Enter next number
3
3
Debug: i : 3
Enter next number
4
4
Debug: i : 4
Enter next number
5
5
Debug: i : 5
Enter next number
6
6
Debug: i : 6
Enter next number
7
7
Debug: i : 7
Enter next number
8
8
Debug: i : 8
Enter next number
9
9
Debug: i : 9
Enter next number
10
10

关于parallel-processing - 我如何在 Go 中使用 fmt.Scanf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14000082/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com