Golang Learn Log #0

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

 

因此,它们对开发人员很有用,因为它们缺少依赖性(内置于编译器中),但不包含在生产代码中。 同样重要的是要注意printprintln stderr报告,而不是stdout 。

然而, fmt提供的系列是用生产代码构建的。 除非另有说明,否则他们可以预测stdout 。 它们更通用( fmt.Fprint*可以向任何io.Writer报告,例如os.Stdout , os.Stderr ,甚至net.Conn类型。)并且不是特定于实现的。

大多数负责输出的软件包都将fmt作为依赖项,例如log 。 如果您的程序将在生产中输出任何内容,则fmt很可能是您想要的包。

----------------------------------------------------------------------------------

以nemo的答案为基础:

posted @ 2019-02-14 17:25  张兆晨  阅读(152)  评论(0编辑  收藏  举报