在使用内置print(ln)
时,遇到了一些意外的控制台输出顺序.GO版本为1.21.3.
下一个代码:
package main
import (
"fmt"
)
func main() {
println("a=1")
a := 1
fmt.Println(a)
println("b=2")
b := 2
fmt.Println(b)
a = b
b = a
fmt.Println(a)
fmt.Println(b)
println("ab")
}
在我的本地机器上有下一个输出:
a=1
b=2
ab
1
2
2
2
考虑到调用的实际顺序,预期输出为:
a=1
1
b=2
2
2
2
ab
这满足了我的期望,当我使用在线围棋编译器(包括围棋).
同样重要的是,print(ln)
个输出的顺序(在当地也是如此)可能极少发生变化,但在大多数情况下仍然是错误的.