此问题在此处已有答案:
golang i use fmt.Println() after println() but(1个答案)
6天前关闭
使用内置的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
型
当我使用在线Go编译器(包括Go Playground)时,它满足了我的期望。
同样重要的是,print(ln)
输出的顺序(也是本地的)可能变化非常少,但在大多数情况下仍然是错误的。
1条答案
按热度按时间cwdobuhd1#
print
写入stderr,fmt.Print
写入stdout。当您混合使用print
和fmt.Print
函数时,您将观察到两个独立的流。