在测试golang的println和fmt.println时需要帮助

在测试golang的println和fmt.println时需要帮助,go,println,gofmt,Go,Println,Gofmt,我编写了简单的代码来测试println和fmt.println,但是当我运行代码时,它几乎每次都打印不同的结果。我试着用谷歌搜索println和fmt.println的区别,但一无所获。有没有人知道这两种功能的真正区别、优先级或顺序 代码如下: package main import ( "fmt" ) func main(){ println("a") fmt.Println("b") println("c") fmt.Println("d")

我编写了简单的代码来测试println和fmt.println,但是当我运行代码时,它几乎每次都打印不同的结果。我试着用谷歌搜索println和fmt.println的区别,但一无所获。有没有人知道这两种功能的真正区别、优先级或顺序

代码如下:

package main
import (
    "fmt"
)

func main(){
    println("a")
    fmt.Println("b")
    println("c")
    fmt.Println("d")

    p()
}

func p(){
    println("e")
    fmt.Println("f")
    println("g")
    fmt.Println("h")
}
谢谢

println内置函数在 实现特定的方法,并将结果写入标准错误。 始终在参数之间添加空格,并追加换行符。 Println用于引导和调试;事实并非如此 保证用这种语言

func Println(一个…接口{})(n int,err error)

Println格式使用其操作数和写入的默认格式 到标准输出。始终在操作数和数组之间添加空格 添加了换行符。它返回写入的字节数和任何 遇到写入错误

fmt.Println()
使用
stdout
println()
使用
stderr

正如预期的那样,两个具有不同目的的不同函数会产生不同的结果

println内置函数在 实现特定的方法,并将结果写入标准错误。 始终在参数之间添加空格,并追加换行符。 Println用于引导和调试;事实并非如此 保证用这种语言

func Println(一个…接口{})(n int,err error)

Println格式使用其操作数和写入的默认格式 到标准输出。始终在操作数和数组之间添加空格 添加了换行符。它返回写入的字节数和任何 遇到写入错误

fmt.Println()
使用
stdout
println()
使用
stderr


正如预期的那样,两个不同用途的函数会产生不同的结果。

最佳实践:仅使用
fmt.Println(“我的文本…”)


不要使用
println(“我的文本…”)
最佳实践:仅使用
fmt.println(“我的文本…”)


不要使用
println(“我的文本…”)

为什么您对使用
println()
感兴趣?这不是语言规范的正式部分,将来可能会消失。请参阅:
println(“a”)
@koljane后面为什么有分号?p:分号与以下问题无关:。您为什么对使用
println()
?这不是语言规范的正式部分,将来可能会消失。请参阅:为什么在
println(“a”)
@koljane之后有分号?p:分号与问题无关:。要对此添加颜色,标准错误和标准输出是两个不同的输出流。无法保证它们在终端上的显示顺序。如果您将fmt.Println唱到fmt.Fprintln(os.StdErr,“b”),那么它们将按照您的预期交错。此注释是答案的重要部分。要对此添加颜色,标准错误和标准输出是两个不同的输出流。无法保证它们在终端上的显示顺序。如果你把fmt.Println唱给fmt.Fprintln(os.StdErr,“b”),那么他们会按照你的预期穿插进来。这个评论是答案的重要部分。
func println(args ...Type)