Golang println 函数
最后修改时间 2025 年 5 月 8 日
本教程解释了如何在 Go 中使用内置的 println
函数。我们将通过调试和日志记录的实际示例涵盖基本输出。
println
函数是 Go 中的一个内置函数,它向标准错误输出。它主要用于调试和开发期间的临时输出。与 fmt.Println
不同,它不需要导入。
在 Go 中,println
接受任何类型的多个参数,并以空格分隔的值打印。它在末尾添加一个换行符。输出格式取决于实现,并且可能因平台而异。
基本的 println 示例
println
最简单的用法是将值输出到标准错误。此示例演示了不同值类型的基本打印。
注意:对于生产代码,请优先使用 fmt
包。
package main func main() { println("Hello, Go!") println(42) println(3.14) println(true) println('A') }
该示例打印一个字符串、一个整数、一个浮点数、一个布尔值和一个 rune。每次调用 println
都会在新行上输出。输出格式是基础的。
打印多个值
println
可以接受不同类型的多个参数。此示例演示了如何在一次调用中打印多个值。
package main func main() { name := "Alice" age := 30 height := 1.75 println("Name:", name, "Age:", age, "Height:", height) a, b := 10, 20 println("Values:", a, b, "Sum:", a+b) }
该函数打印所有参数,用空格分隔。表达式在打印前进行求值。输出格式的自定义性不如 fmt
。
使用 println 进行调试
println
通常用于开发期间的快速调试。此示例演示了其在变量检查中的使用。
package main func calculate(x, y int) int { println("calculate called with", x, y) result := x * y println("intermediate result:", result) return result + 1 } func main() { a := 5 b := 7 println("Before calculation") res := calculate(a, b) println("Final result:", res) }
调试打印有助于跟踪函数调用和中间值。这对于没有正确日志记录设置的快速诊断非常有用。
Println 与 fmt.Println
此示例将 println
与 fmt.Println
进行比较。它突出了这两种方法的格式差异。
package main import "fmt" func main() { value := 3.141592653589793 println("Built-in println:", value) fmt.Println("fmt.Println:", value) println("Built-in (struct):", struct{ x int }{42}) fmt.Println("fmt.Println (struct):", struct{ x int }{42}) }
fmt.Println
为复杂类型提供了更好的格式。内置的 println
输出更基础,一致性更差。
goroutine 中的 Println
println
可以安全地从多个 goroutine 调用。此示例演示了并发打印。
package main import ( "sync" "time" ) func worker(id int, wg *sync.WaitGroup) { defer wg.Done() println("Worker", id, "started") time.Sleep(time.Second) println("Worker", id, "finished") } func main() { var wg sync.WaitGroup for i := 1; i <= 3; i++ { wg.Add(1) go worker(i, &wg) } wg.Wait() println("All workers completed") }
输出显示来自不同 goroutine 的交错消息。println
可以安全地处理并发调用,尽管输出可能会以不可预测的方式混合。
来源
本教程通过调试和临时输出场景的实际示例,介绍了 Go 中的 println
函数。