了解Go(Golang)中的打印功能

536 阅读2分钟

概述

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.