Print/Printf 区别
Print: 可以打印出字符串, 和变量
fmt.Println(var) //right fmt.Println("string") //right
Printf: 只可以打印出格式化的字符串, 可以输出字符串类型的变量, 不可以输出整形变量和整形
fmt.Printf("%x",var) //right fmt.Printf(var) //error
----------------------------------------------------------------------------------
fmt.Println / println 区别
以nemo的答案为基础:
println
是一种内置于该语言中的函数。 它位于规范的Bootstrapping部分。 从链接:
当前实现提供了几个在引导期间有用的内置函数。 记录这些函数是为了完整性,但不保证保留在该语言中。 他们不会返回结果。
Function Behavior print prints all arguments; formatting of arguments is implementation-specific println like print but prints spaces between arguments and a newline at the end
因此,它们对开发人员很有用,因为它们缺少依赖性(内置于编译器中),但不包含在生产代码中。 同样重要的是要注意print
和println
向stderr
报告,而不是stdout
。
然而, fmt
提供的系列是用生产代码构建的。 除非另有说明,否则他们可以预测stdout
。 它们更通用( fmt.Fprint*
可以向任何io.Writer
报告,例如os.Stdout
, os.Stderr
,甚至net.Conn
类型。)并且不是特定于实现的。
大多数负责输出的软件包都将fmt
作为依赖项,例如log
。 如果您的程序将在生产中输出任何内容,则fmt
很可能是您想要的包。
----------------------------------------------------------------------------------
以nemo的答案为基础: