提问人:ghostinecatnewyear 提问时间:11/8/2023 更新时间:11/8/2023 访问量:49
Golang 内置 print(ln) 函数的奇怪行为 [duplicate]
Golang built-in print(ln) function's weird behaviour [duplicate]
问:
使用内置 .Go 版本为 1.21.3。print(ln)
下一个代码:
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)
答:
2赞
Burak Serdar
11/8/2023
#1
print
写入 stderr,写入 stdout。当您混合和功能时,您正在观察两个单独的流。fmt.Print
print
fmt.Print
上一个:不能匹配两个相同的类型
评论