【Go】详解fmt

目录

Print 和 Println

 Printf

Scan 和 Scanln

Sprint、Sprintln 和 Sprintf

Fprint、Fprintln 和 Fprintf


在 Go 语言中,fmt 包是用于格式化输入和输出的标准包。它提供了一系列函数和方法,可以方便地进行输入和输出的格式化操作。

PrintPrintln

以下是 fmt 包常用的函数和方法:

PrintPrintln:用于将数据输出到标准输出(通常是终端)。Print 函数输出数据后不换行,而 Println 函数输出数据后会自动换行。

package main

import "fmt"

func main() {
	fmt.Print("2222")
	fmt.Println("1111")
	fmt.Print("2222")
	fmt.Print("2222")
	fmt.Println("1111")
}

 Printf

Printf:用于将格式化的数据输出到标准输出。它使用类似 C 语言的格式化字符串,可以通过占位符指定输出数据的格式和位置。

func Printf(format string, a ...interface{}) (n int, err error)
  • format 是一个字符串,其中包含了要格式化输出的文本及占位符。
  • a ...interface{} 是一个可变参数,用于传入要输出的数据。

占位符是格式化字符串中的特殊字符序列,它们以 % 开头,用于指定不同类型的数据在输出时的格式。以下是常用的一些占位符:

  • %d:十进制整数。
  • %f:浮点数。
  • %s:字符串。
  • %t:布尔值。
  • %v:通用格式,默认格式化为相应值的字符串。
  • %T:数据的类型。
  • %p:指针的地址。

下面是一个示例,演示了如何使用 Printf 进行格式化输出:

package main

import "fmt"

func main() {
	var name = "Alice"
	var age = 25
	var height = 1.65

	fmt.Printf("Name: %s\n", name)
	fmt.Printf("Age: %d\n", age)
	fmt.Printf("Height: %.2f\n", height)
	fmt.Printf("add:%p", &name)
}

 在这个例子中,我们使用了不同的占位符来格式化输出字符串、整数和浮点数。其中,%.2f 表示保留两位小数的浮点数。

ScanScanln

ScanScanln:用于从标准输入读取数据,并将其存储到指定的变量中。Scan 函数会在遇到空格或回车时停止读取,而 Scanln 函数在读取完整行时停止。

下面是一个示例,演示了如何使用 ScanScanln 函数读取用户的输入:

package main

import "fmt"

func main() {
	var name string
	var age int

	fmt.Print("Enter your name: ")
	fmt.Scan(&name)
	fmt.Print("Enter your age: ")
	fmt.Scanln(&age)

	fmt.Printf("Name: %s\n", name)
	fmt.Printf("Age: %d\n", age)
}

Sprint、Sprintln 和 Sprintf

SprintSprintlnSprintf 是 Go 语言 fmt 包提供的函数,用于将格式化的数据转换为字符串。

这些函数的命名类似于 PrintPrintlnPrintf 函数,但是它们不是将数据输出到标准输出,而是将数据格式化为字符串并返回。

  • Sprint 函数将传入的数据格式化为字符串,并返回该字符串。它接受可变数量的参数,并按照指定的格式进行格式化。
  • Sprintln 函数与 Sprint 函数类似,但在每个参数之间会添加一个空格,并在最后添加一个换行符(\n)。
  • Sprintf 函数根据指定的格式将传入的数据格式化为字符串,并返回该字符串。它接受一个格式化字符串作为第一个参数,然后根据该格式化字符串和后续的参数进行格式化。
func Sprint(a ...interface{}) string
func Sprintln(a ...interface{}) string
func Sprintf(format string, a ...interface{}) string
  • a ...interface{} 是一个可变参数,用于传入要格式化的数据。
  • format 是一个字符串,用于指定格式化的规则。

下面是一个示例,演示了如何使用 SprintSprintlnSprintf 函数进行字符串格式化:

package main

import "fmt"

func main() {
	var name = "Alice"
	var age = 25
	var height = 1.65

	// 使用 Sprint 格式化为字符串,并赋值给变量
	var info1 = fmt.Sprint("Name:", name, ", Age:", age, ", Height:", height)
	fmt.Println(info1)

	// 使用 Sprintln 格式化为字符串,并赋值给变量
	var info2 = fmt.Sprintln("Name:", name, ", Age:", age, ", Height:", height)
	fmt.Println(info2)

	// 使用 Sprintf 进行格式化,并赋值给变量
	var info3 = fmt.Sprintf("Name: %s, Age: %d, Height: %.2f", name, age, height)
	fmt.Println(info3)
}

 在这个例子中,我们使用了 SprintSprintlnSprintf 函数分别将数据格式化为字符串,并将结果赋值给不同的变量。然后我们打印这些变量,可以看到它们包含了相应的格式化数据。

Fprint、Fprintln 和 Fprintf

FprintFprintlnFprintf 是 Go 语言 fmt 包提供的函数,用于将格式化的数据输出到指定的 io.Writer。

这些函数与 PrintPrintlnPrintf 函数类似,但是它们不是将数据输出到标准输出,而是将数据格式化后输出到指定的 io.Writer,例如文件、网络连接等。

  • Fprint 函数将传入的数据格式化为字符串,并将结果输出到指定的 io.Writer。它接受一个 io.Writer 类型的参数作为第一个参数,后面可以跟上可变数量的参数。
  • Fprintln 函数与 Fprint 函数类似,但在每个参数之间会添加一个空格,并在最后添加一个换行符(\n)。
  • Fprintf 函数根据指定的格式将传入的数据格式化为字符串,并将结果输出到指定的 io.Writer。它接受一个 io.Writer 类型的参数作为第一个参数,后面跟着一个格式化字符串和后续的参数。

以下是 FprintFprintlnFprintf 函数的基本语法:

func Fprint(w io.Writer, a ...interface{}) (n int, err error)
func Fprintln(w io.Writer, a ...interface{}) (n int, err error)
func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error)
  • w 是一个实现了 io.Writer 接口的对象,可以是文件、网络连接等。
  • a ...interface{} 是一个可变参数,用于传入要输出的数据。
  • format 是一个字符串,用于指定格式化的规则。

下面是一个示例,演示了如何使用 FprintFprintlnFprintf 函数将数据格式化后输出到文件:

package main

import (
	"fmt"
	"os"
)

func main() {
	file, err := os.Create("output.txt")
	if err != nil {
		fmt.Println("Failed to create file:", err)
		return
	}
	defer file.Close()

	name := "Alice"
	age := 25
	height := 1.65

	// 使用 Fprint 将数据格式化并输出到文件
	fmt.Fprint(file, "Name: ", name, ", Age: ", age, ", Height: ", height)

	// 使用 Fprintln 将数据格式化并输出到文件,并换行
	fmt.Fprintln(file, "Name: ", name, ", Age: ", age, ", Height: ", height)

	// 使用 Fprintf 将数据格式化并输出到文件
	fmt.Fprintf(file, "Name: %s, Age: %d, Height: %.2f\n", name, age, height)
}

在以上代码中,我们首先创建了一个名为 "output.txt" 的文件,并将其赋值给 file 变量。然后我们使用 FprintFprintlnFprintf 函数将数据格式化后输出到该文件中。最后,我们关闭了文件。

运行这段代码后,会在当前目录下创建一个名为 "output.txt" 的文件,并将格式化后的数据写入到该文件中。

需要注意的是,在使用 FprintFprintlnFprintf 函数时,需要确保传入的 io.Writer 对象合法和可用。在实际开发中,可以使用 os.Stdout 表示标准输出,os.Stderr 表示标准错误输出,或者使用文件或网络连接等对象作为参数。

猜你喜欢

转载自blog.csdn.net/fanjufei123456/article/details/129892692