fmt.Sprintf
fmt.Sprintf
函数和 fmt.Printf
函数类似,只是它返回一个字符串,而不是输出到控制台。其基本语法如下:
func Sprintf(format string, a ...interface{}) string
例如:goCopy codestr := fmt.Sprintf("%d %s", 10, "hello")
上述代码将返回字符串 10 hello
。
fmt.Fprintf
fmt.Fprintf
函数可以将格式化字符串输出到一个 io.Writer 接口中,比如文件或网络连接。其基本语法如下:
func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error)
其中,w
参数是实现了 io.Writer 接口的对象,format
参数是格式化字符串,a ...interface{}
参数是可变参数,可以传入任意个数和任意类型的参数。例如:
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
函数用于从标准输入中读取数据,以空格或换行符为分隔符,赋值给指定的变量。其基本语法如下:
func Scan(a ...interface{}) (n int, err error)
其中,a ...interface{}
参数是一个或多个指向变量的指针。例如:
var name string
var age int
fmt.Scan(&name, &age)
fmt.Printf("name: %s, age: %dn", name, age)
上述代码将从标准输入中读取两个变量的值,以空格或换行符为分隔符,输出变量的值。
fmt.Scanf
fmt.Scanf
函数和 fmt.Scan
函数类似,只是它需要指定格式化字符串,以解析输入的数据。其基本语法如下:
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)
上述代码将从标准输入中读取两个变量的值,按照指定的格式化字符串解析输入的数据,输出变量的值。