golang fmt标准库函数

发布时间:2024-12-23 03:31:28

fmt 包实现了格式化 I/O 操作,类似 C 语言的 printf 和 scanf。虽然它提供了类似于其他语言中打印的功能,但 fmt 包的设计和实现与其他语言有所不同。

Printf 函数

Printf 函数是 fmt 包最经典和常用的函数之一,它可以将格式化的内容输出到标准输出、文件或字符串。 通过使用占位符和对应的参数,Printf 函数可以将不同类型的值格式化为字符串并打印出来。

func Printf(format string, a ...interface{}) (n int, err error)

这里的 format 参数是一个字符串,定义了输出的格式。a 是一个 interface{} 类型的可变参数,表示要填充到 format 中的值。Printf 函数返回打印的字节数以及可能遇到的错误。下面是一个示例:

fmt.Printf("Hello, %s! You are %d years old.\n", "Alice", 25)

上述代码将输出:Hello, Alice! You are 25 years old.

Sprintf 函数

Sprintf 函数与 Printf 函数类似,不同之处在于它将格式化后的字符串返回而不打印输出。通过 Sprintf 函数,我们可以将格式化的字符串保存到变量中,方便后续使用。

func Sprintf(format string, a ...interface{}) string

返回的结果是一个字符串,它包含了格式化后的内容。下面是一个使用 Sprintf 的示例:

greeting := fmt.Sprintf("Hello, %s! You are %d years old.\n", "Bob", 30)

上述代码将把格式化后的字符串赋值给变量 greeting。在后续的程序中,我们可以通过 greeting 变量来获取该字符串。

Fscanf 函数

Fscanf 函数用于从输入流中读取数据并根据格式字符串解析参数。它类似于 C 语言中的 scanf 函数。通过 Fscanf 函数,我们可以将输入的数据按照指定的格式分解并赋值到对应的变量中。

func Fscanf(r io.Reader, format string, a ...interface{}) (n int, err error)

Fscanf 函数的第一个参数 r 是一个实现了 io.Reader 接口的对象,可以是标准输入、文件或者其他实现了该接口的对象。format 参数指定了输入的格式,a 是待解析的参数。下面是一个示例:

var name string
var age int
fmt.Fscanf(os.Stdin, "Name: %s Age: %d", &name, &age)

上述代码从标准输入中读取一行,格式为 "Name: [name] Age: [age]",并将 name 和 age 的值分别赋给对应的变量。

总而言之,fmt 包提供了一组强大的函数,方便我们进行格式化 I/O 操作。它支持打印和扫描不同类型的数据,并且具有灵活的格式化选项。无论是 printf、sprintf 还是 scanf,fmt 包都能满足你的需求。

相关推荐