概述
Print是在fmt包中定义的,用于格式化一个字符串并写入标准输出。
https://golang.org/pkg/fmt/#Print
下面是Print的函数原型
func Print(a ...interface{}) (n int, err error)
Print使用默认的格式指定器对字符串进行格式化,但不在字符串后面添加新行。Print需要一个可变数量的参数,每个参数是一个空接口。它返回打印的字符数和任何错误(如果发生)。由于参数类型是一个空接口,我们可以向它传递任何数据类型。我们可以传递一个字符串、int、float、struct或任何其他数据类型。Print函数的每个参数都会根据该参数类型的默认格式指定器进行格式化。例如,结构体将按照以下格式指定器进行格式化
%v
该格式指定器仅打印结构中的值部分。fmt包还提供了一个附加新行的函数--Println。 Print函数与Println函数完全相同,但有两个不同之处
-
它不会在结尾处添加换行。我们需要使用新行标识符来添加一个新行"/n"。
-
只有在操作数都不是字符串的情况下才会在参数之间添加空格
让我们看一个例子
程序
让我们看一个同样的例子
package main
import "fmt"
type employee struct {
Name string
Age int
}
func main() {
name := "John"
age := 21
fmt.Print("Name is:", name, "\n")
fmt.Print("Age is:", age, "\n")
e := employee{
Name: name,
Age: age,
}
fmt.Print(e, "\n")
fmt.Print("a", 12, "b", 12.0, "\n")
fmt.Print(12, 12.0, "\n")
bytesPrinted, err := fmt.Print("Name is: ", name, "\n")
if err != nil {
log.Fatalln("Error occured", err)
}
fmt.Print(bytesPrinted)
}
输出
Name is:John
Age is:21
{John 21}
a12b12
12 12
Name is: John
14
关于Print函数需要注意的一些要点
-
它不会在最后追加新的一行。这就是为什么需要使用**"\n "来**添加新行。
-
它只在两个参数之间添加空格,如果每个参数是一个非字符串。这就是为什么
fmt.Print(12, 12.0, "\n")
打印
12 12
而
fmt.Print("a", 12, "b", 12.0, "\n")
打印
a12b12
- 它还返回打印的字符数和任何错误,如果发生的话
bytesPrinted, err := fmt.Print("Name is: ", name, "\n")
if err != nil {
log.Fatalln("Error occured", err)
}
fmt.Print(bytesPrinted)
将输出以下内容
Name is: John
14
bytesPrinted的数量是14,因为输出的是14个字符。
另外,请查看我们的Golang高级教程系列 -Golang高级教程
The postUnderstanding Print function in Go (Golang)appeared first onWelcome To Golang By Example.