在旅途中,如果我们要打印的东西,我们可以这样做如下:
import "fmt"
func main(){
fmt.Println("Hello world!")
}
但我发现,一个可以做同样不导入fmt
:
func main(){
println("Hello world!")
}
可能有人请解释一下吗?
在旅途中,如果我们要打印的东西,我们可以这样做如下:
import "fmt"
func main(){
fmt.Println("Hello world!")
}
但我发现,一个可以做同样不导入fmt
:
func main(){
println("Hello world!")
}
可能有人请解释一下吗?
println
是一个内置函数(到运行时),其可以最终被去除,而fmt
包是在标准库,这将持续存在。 见规范关于这一主题。
对于语言开发起来更是得心应手拥有println
没有依赖关系,但要走的路是用fmt
包或类似的东西( log
为例)。
正如你可以在实现中看到的print(ln)
函数没有被设计成甚至远程支持不同的输出模式,主要是调试工具。
要建立在Nemo的答案:
println
是语言内置的一个功能。 它是在的自举部分规范 。 从链接:
当前实现提供引导过程中有用的几个内置的功能。 这些功能是为了文档的完整,但不保证留在语言。 他们不返回结果。
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
是最有可能需要的数据包。
至于差, 这是一个例子。
println()
打印指针指向功能测试的地址。
fmt.Println()
打印的功能的地址。