★fmt | fmt 包實現(xiàn)了格式化I/O函數(shù),類似于C的 printf 和 scanf.
fmt
fmt包提供的最主要的功能只有兩個:Print,Scan
輸出到屏幕的有如下幾個函數(shù)fmt.Print(),fmt.Println(),fmt.Printf()
實現(xiàn)的基礎分別為通過fmt.FPrint(),fmt.FPrintln(),fmt.FPrintf()來輸出到sys.stdout
而Sprint和Fprint實現(xiàn)方法類似,只不過前者是返回string(p.buf),而后者是w.Write(p.buf)直接寫到Writer里
其實現(xiàn)采用了sync.Pool做對象復用,使用了類似fasthttp的p.buf = p.buf[:0]來做底層數(shù)組復用
Scan
Scan和Print類似
接口
接口有如下幾個,現(xiàn)在用不上,先不看了
fmt.Scanner()
fmt.State()
fmt.ScanState()
fmt.GoStringer()
fmt.Stringer()
fmt.Formatter()
format格式
最重要之一的應該是格式字符串的構建,golang文檔做了詳細的描述:fmt
直到幾個最基本的就行,剩下的用到了再去查
在linux控制臺下可以看到彩色字符實現(xiàn)方式如下:
fmt.Printf(" \033[31;44;4;1;5m狂拽酷炫屌炸天")
\033是前引符,[后接參數(shù),參數(shù)之間用;分號隔開,m代表參數(shù)結束
可用參數(shù)如下:
| 前景 | 背景 | 顏色 |
|---|---|---|
| 30 | 40 | 黑色 |
| 31 | 41 | 紅色 |
| 32 | 42 | 綠色 |
| 33 | 43 | 黃色 |
| 34 | 44 | 藍色 |
| 35 | 45 | 紫紅色 |
| 36 | 46 | 青藍色 |
| 37 | 47 | 白色 |
| 代碼 | 意義 |
|---|---|
| 0 | 終端默認設置 |
| 1 | 高亮加粗顯示 |
| 4 | 使用下劃線 |
| 5 | 閃爍 |
| 7 | 反白顯示 |
| 8 | 不可見 |