Golang的fmt包
Sprint & Sprintf
Sprint 使用其操作数的默认格式格式化并返回结果字符串。
当两者都不是字符串时,在操作数之间添加空格。
// Sprint formats using the default formats for its operands and returns the resulting string.
// Spaces are added between operands when neither is a string.
func Sprint(a ...any) string {
p := newPrinter()
p.doPrint(a)
s := string(p.buf)
p.free()
return s
}
Sprintf 根据格式说明符格式化并返回结果字符串。
// Sprintf formats according to a format specifier and returns the resulting string.
func Sprintf(format string, a ...any) string {
p := newPrinter()
p.doPrintf(format, a)
s := string(p.buf)
p.free()
return s
}
fmt包
fmt包实现了类似C语言printf和scanf的格式化I/O。主要分为向外输出内容和获取输入内容两大部分。
输出内容
Print
Print 系列函数会将内容输出到系统的标准输出,区别在于Print函数直接输出内容
Printf函数支持格式化输出字符串,Println函数会在输出内容的结尾添加一个换行符。
func Print(a ...interface{}) (n int, err error)
func Printf(format string, a ...interface{}) (n int, err error)
func Println(a ...interface{}) (n int, err error)
举例
package main
import "fmt"
func main() {
fmt.Print("打印信息,不做任何操作。。。")
str := "格式化"
fmt.Printf("%s\n", str)
fmt.Println("打印信息,末尾换行")
}
Fprint
Fprint系列函数会将内容输出到一个io.Writer接口类型的变量w中,我们通常用这个函数往文件中写入内容。
func Fprint(w io.Writer, a ...interface{}) (n int, err error)
func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error)
func Fprintln(w io.Writer, a ...interface{}) (n int, err error)
例子
func main() {
fileObj, err := os.OpenFile("./xx.txt", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
if err != nil {
fmt.Println("打开文件出错,err:", err)
return
}
name := "EDG/RNG/JDG/TES/GENG/T1/DK/DRX..."
// 向打开的文件句柄中写入内容
fmt.Fprintf(fileObj, "往文件中写如信息:%s", name)
}
只要满足io.Writer接口的类型都支持写入。
Sprint
Sprint 系列函数会把传入的数据生成并返回一个字符串。
func Sprint(a ...interface{}) string
func Sprintf(format string, a ...interface{}) string
func Sprintln(a ...interface{}) string
例子
func main() {
s1 := fmt.Sprint("James")
name := "James"
age := 38
s2 := fmt.Sprintf("name:%s, age:%d", name, age)
s3 := fmt.Sprintln("James")
fmt.Println(s1, s2, s3)
}
Errorf
Errorf函数根据format参数生成格式化字符串并返回一个包含该字符串的错误。
func Errorf(format string, a ...interface{}) error
通常使用这种方式来自定义错误类型,例如:
err := fmt.Errorf("这是一个错误")
Go1.13版本为fmt.Errorf函数新加了一个%w占位符用来生成一个可以包裹Error的Wrapping Error。
e := errors.New("原始错误e")
w := fmt.Errorf("Wrap了一个错误%w", e)
你应当热爱自由!
作者:Leejk,转载请注明原文链接:https://www.cnblogs.com/leejk/p/16739620.html