★fmt | fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf.
fmt
fmt包提供的最主要的功能只有两个:Print
,Scan
输出到屏幕的有如下几个函数fmt.Print()
,fmt.Println()
,fmt.Printf()
实现的基础分别为通过fmt.FPrint()
,fmt.FPrintln()
,fmt.FPrintf()
来输出到sys.stdout
而Sprint
和Fprint
实现方法类似,只不过前者是返回string(p.buf)
,而后者是w.Write(p.buf)
直接写到Writer里
其实现采用了sync.Pool
做对象复用,使用了类似fasthttp的p.buf = p.buf[:0]
来做底层数组复用
Scan
Scan和Print类似
接口
接口有如下几个,现在用不上,先不看了
fmt.Scanner()
fmt.State()
fmt.ScanState()
fmt.GoStringer()
fmt.Stringer()
fmt.Formatter()
format格式
最重要之一的应该是格式字符串的构建,golang文档做了详细的描述:fmt
有疑问加站长微信联系(非本文作者)