目录
Print 和 Println
Printf
Scan 和 Scanln
Sprint、Sprintln 和 Sprintf
Fprint、Fprintln 和 Fprintf
在 Go 语言中,fmt
包是用于格式化输入和输出的标准包。它提供了一系列函数和方法,可以方便地进行输入和输出的格式化操作。
Print
和 Println
以下是 fmt
包常用的函数和方法:
Print
和 Println
:用于将数据输出到标准输出(通常是终端)。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
表示保留两位小数的浮点数。
Scan
和 Scanln
Scan
和 Scanln
:用于从标准输入读取数据,并将其存储到指定的变量中。Scan
函数会在遇到空格或回车时停止读取,而 Scanln
函数在读取完整行时停止。
下面是一个示例,演示了如何使用 Scan
和 Scanln
函数读取用户的输入:
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
Sprint
、Sprintln
和 Sprintf
是 Go 语言 fmt
包提供的函数,用于将格式化的数据转换为字符串。
这些函数的命名类似于 Print
、Println
和 Printf
函数,但是它们不是将数据输出到标准输出,而是将数据格式化为字符串并返回。
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
是一个字符串,用于指定格式化的规则。
下面是一个示例,演示了如何使用 Sprint
、Sprintln
和 Sprintf
函数进行字符串格式化:
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)
}
在这个例子中,我们使用了 Sprint
、Sprintln
和 Sprintf
函数分别将数据格式化为字符串,并将结果赋值给不同的变量。然后我们打印这些变量,可以看到它们包含了相应的格式化数据。
Fprint、Fprintln 和 Fprintf
Fprint
、Fprintln
和 Fprintf
是 Go 语言 fmt
包提供的函数,用于将格式化的数据输出到指定的 io.Writer。
这些函数与 Print
、Println
和 Printf
函数类似,但是它们不是将数据输出到标准输出,而是将数据格式化后输出到指定的 io.Writer,例如文件、网络连接等。
Fprint
函数将传入的数据格式化为字符串,并将结果输出到指定的 io.Writer。它接受一个 io.Writer 类型的参数作为第一个参数,后面可以跟上可变数量的参数。Fprintln
函数与Fprint
函数类似,但在每个参数之间会添加一个空格,并在最后添加一个换行符(\n
)。Fprintf
函数根据指定的格式将传入的数据格式化为字符串,并将结果输出到指定的 io.Writer。它接受一个 io.Writer 类型的参数作为第一个参数,后面跟着一个格式化字符串和后续的参数。
以下是 Fprint
、Fprintln
和 Fprintf
函数的基本语法:
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
是一个字符串,用于指定格式化的规则。
下面是一个示例,演示了如何使用 Fprint
、Fprintln
和 Fprintf
函数将数据格式化后输出到文件:
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
变量。然后我们使用 Fprint
、Fprintln
和 Fprintf
函数将数据格式化后输出到该文件中。最后,我们关闭了文件。
运行这段代码后,会在当前目录下创建一个名为 "output.txt" 的文件,并将格式化后的数据写入到该文件中。
需要注意的是,在使用 Fprint
、Fprintln
和 Fprintf
函数时,需要确保传入的 io.Writer 对象合法和可用。在实际开发中,可以使用 os.Stdout
表示标准输出,os.Stderr
表示标准错误输出,或者使用文件或网络连接等对象作为参数。