Go-标准库-fmt(二)

2023-04-21 14:49:34 浏览数 (1)

fmt.Sprintf

fmt.Sprintf 函数和 fmt.Printf 函数类似,只是它返回一个字符串,而不是输出到控制台。其基本语法如下:

代码语言:javascript复制
func Sprintf(format string, a ...interface{}) string

例如:goCopy codestr := fmt.Sprintf("%d %s", 10, "hello")

上述代码将返回字符串 10 hello

fmt.Fprintf

fmt.Fprintf 函数可以将格式化字符串输出到一个 io.Writer 接口中,比如文件或网络连接。其基本语法如下:

代码语言:javascript复制
func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error)

其中,w 参数是实现了 io.Writer 接口的对象,format 参数是格式化字符串,a ...interface{} 参数是可变参数,可以传入任意个数和任意类型的参数。例如:

代码语言:javascript复制
file, err := os.Create("output.txt")
if err != nil {
    log.Fatal(err)
}
defer file.Close()

fmt.Fprintf(file, "%d %sn", 10, "hello")

上述代码将输出 10 hello 到文件 "output.txt" 中。

格式化输入

fmt 包还提供了多种格式化输入的函数,可以从控制台或其他 io.Reader 接口中读取数据。

fmt.Scan

fmt.Scan 函数用于从标准输入中读取数据,以空格或换行符为分隔符,赋值给指定的变量。其基本语法如下:

代码语言:javascript复制
func Scan(a ...interface{}) (n int, err error)

其中,a ...interface{} 参数是一个或多个指向变量的指针。例如:

代码语言:javascript复制
var name string
var age int

fmt.Scan(&name, &age)
fmt.Printf("name: %s, age: %dn", name, age)

上述代码将从标准输入中读取两个变量的值,以空格或换行符为分隔符,输出变量的值。

fmt.Scanf

fmt.Scanf 函数和 fmt.Scan 函数类似,只是它需要指定格式化字符串,以解析输入的数据。其基本语法如下:

代码语言:javascript复制
func Scanf(format string, a ...interface{}) (n int, err error)

例如:

代码语言:javascript复制
var name string
var age int

fmt.Scanf("%s %d", &name, &age)
fmt.Printf("name: %s, age: %dn", name, age)

上述代码将从标准输入中读取两个变量的值,按照指定的格式化字符串解析输入的数据,输出变量的值。

go

0 人点赞