print和println 在golang中 是属于输出到标准错误流中并打印,官方不建议写程序时候用它,可以在debug时候用,而且后期不保证是否会继续保留。
而fmt.Print,fmt.Println属于官方包fmt中自带的打印方法,在golang中 是属于标准输出流,一般使用它来进行屏幕输出.
在这之前先介绍一下printf方法:
"fmt"包中的"Printf"函数的 完整说明如下:
Printf(format string, v ...) (n int, errno os.Error)
其中"..."表示数目可变参数,和C语言中"stdarg.h"中的宏类似。不过Go中,可变参数是通道 一个空接口("interface {}")和反射(reflection)库实现的。
printf方法需要加参数表示后面打印的变量是什么,在go中最简单的方法是用"%v"标志,它可以以适当的格式输出任意的类型(包括数组和结构)。
14 type T struct {
15 a int
16 b string
17 }
18 t := T{77, "Sunset Strip"}
19 a := []int{1, 2, 3, 4}
20 fmt.Printf("%v %v\n", t, a)
如果是使用"Print"或"Println"函数的话,甚至不需要格式化字符串。
也就是说"Print"或"Println"是已经封装好的printf,他们会帮你自动格式化
这些函数会针对数据类型 自动作转换。
"Print"函数默认将每个参数以"%v"格式输出,
"Println"函数则是在"Print"函数 的输出基础上增加一个换行。
以下两种输出方式和前面的输出结果是一致的。
21 fmt.Print(u64, " ", t, " ", a, "\n")
22 fmt.Println(u64, t, a)