在使用内置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)个输出的顺序(在当地也是如此)可能极少发生变化,但在大多数情况下仍然是错误的.

推荐答案

print次写入标准错误,fmt.Print次写入标准输出.当你混合printfmt.Print函数时,你会看到两个独立的流.

Go相关问答推荐

如何模拟嵌入. FS?

获取k8s群集作用域运算符的命名空间

你能帮我优化一个golang代码关于函数CrossPointTwoRect

如何在gofr发起的服务间调用请求中添加Authorization Header?

使用Go使用Gorm使用外键对数据进行排序

Go-如何在递归函数中关闭通道

无法在go中为docker容器写入有效的挂载路径

这是实现超时的常见方法,为什么 time.After 不起作用

带有前导零的整数参数被 flag.IntVar 解析为八进制

如何在 fyne-io/fyne 中设置文本的字母间距?

无法从主域访问子域:无Access-Control-Allow-Origin

如何编写一个以字符串或错误为参数的通用函数?

go 是否对 struct 使用空间填充之类的东西?

Golang 数据库/sql 与 SetMaxOpenConns 挂起

Golang - 无法从 pipped Windows 命令中获取结果

具有相同提前返回语句的函数的不同基准测试结果

将未知长度切片的值分配给Go中的 struct ?

Go GCP 同时模拟两个服务帐户

如何在眼镜蛇(golang)中将标志作为参数传递?

在 Go 中表达函数的更好方法( struct 方法)