★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
直到几个最基本的就行,剩下的用到了再去查
在linux控制台下可以看到彩色字符实现方式如下:
fmt.Printf(" \033[31;44;4;1;5m狂拽酷炫屌炸天")
\033
是前引符,[
后接参数,参数之间用;
分号隔开,m
代表参数结束
可用参数如下:
前景 | 背景 | 颜色 |
---|---|---|
30 | 40 | 黑色 |
31 | 41 | 红色 |
32 | 42 | 绿色 |
33 | 43 | 黄色 |
34 | 44 | 蓝色 |
35 | 45 | 紫红色 |
36 | 46 | 青蓝色 |
37 | 47 | 白色 |
代码 | 意义 |
---|---|
0 | 终端默认设置 |
1 | 高亮加粗显示 |
4 | 使用下划线 |
5 | 闪烁 |
7 | 反白显示 |
8 | 不可见 |