【发布时间】:2020-06-01 00:49:33
【问题描述】:
这不是乱序输出吗 问答
这是我的代码
var i=map[int]int{
1:1,
2:2,
3:3,
}
for i2, i3 := range i {
fmt.Println(i2, i3)
}
输出是
1 1
2 2
3 3
为什么?
【问题讨论】:
-
这只是“伪随机”,并且插入序列 1:1、2:2、3:3 最终以原始顺序迭代(这可能仅适用于 Go 版本你正在运行)。尝试插入例如 1:1, 3:3, 2:2 代替,它不一定会按插入顺序进行迭代。
-
非常感谢。我明白了
-
1 2 3是1 2 3的可能随机排序之一 -
但是我用这组数据做了七八次实验,结果都是一样的。
-
@sexy_Robber:“我实验了七八次。”抛硬币 7 或 8 次总是正面并不意味着概率不是 0.5。对于小数字,使用伪随机数生成器 (PRNG),这并不奇怪。继续运行程序:play.golang.org/p/yjAOalbsOOI.