包fmt
import "fmt"
軟件包fmt實現了格式化的I / O,其功能類似於C的printf和scanf。格式'動詞'來自C,但更簡單。
Printing
已有示例代碼:
type Person struct {
Name string
}
通用:
佔位符 | 說明 | 示例 | 輸出 |
---|---|---|---|
%v |
相應值的默認格式 | Printf("%v",person ) | {zhangsan} |
%+v |
類似%v,但輸出結構體時會添加字段名式 | Printf("%+v",person ) | {Name:zhangsan} |
%#v |
相應值的Go語法表示 | Printf("#v",person ) | main.Person={zhangsan} |
%T |
相應值的類型的Go語法表示 | Printf("%T",person ) | main.Person |
%% |
字面上的百分號,並非值的佔位符 | Printf("%%") | % |
布爾值:
布爾佔位符 | 說明 | 示例 | 輸出 |
---|---|---|---|
%t |
單詞true或false | Printf("%t",true) | true |
整數:
佔位符 | 說明 | 示例 | 輸出 |
---|---|---|---|
%b |
二進制表示 | Printf("%b",5) | 101 |
%c |
該值對應的unicode碼值 | Printf("%c",0x4E2d) | 中 |
%d |
十進制表示 | Printf("%d",0x12) | 18 |
%o |
八進制表示 | Printf("%o",10) | 12 |
%q |
單引號圍繞的字符字面值,由Go語法安全的轉譯 | Printf("%q",0x4E2d) | '中' |
%x |
十六進制表示,字母形式爲小寫a-f | Printf("%x",13) | d |
%X |
十六進制表示,字母形式爲大寫A-F | Printf("%X",13) | D |
%U |
表示爲Unicode格式:U+1234,等價於"U+%04X" | Printf("%U",0x4E2d) | U+4E2D |
浮點數與複數的兩個組分:
佔位符 | 說明 | 示例 | 輸出 |
---|---|---|---|
%b |
無小數部分、指數爲二的冪的科學計數法,與strconv.FormatFloat的'b'轉換格式一致。 | Printf("%b",10.20) | 5742089524897382p-49 |
%e |
科學計數法,如-1234.456e+78 | Printf("%e",10.20) | 1.020000e+01 |
%E |
科學計數法,如-1234.456E+78 | Printf("%E",10.20) | 1.020000E+01 |
%f |
有小數部分但無指數部分,如123.456 | Printf("%f",10.20) | 10.200000 |
%g |
根據實際情況採用%e或%f格式(以獲得更簡潔、準確的輸出) | Printf("%g",10.20) | 10.2 |
%G |
根據實際情況採用%E或%F格式(以獲得更簡潔、準確的輸出) | Printf("%G",10.20) | (10.2+2i) |
字符串和[]byte:
佔位符 | 說明 | 示例 | 輸出
:---: |:---:|:---:|:---:
%s
| 輸出字符串表示(string類型或[]byte) | Printf("%s",[]byte("Go語言")) | Go語言
%q
| 雙引號圍繞的字符串,由Go語法安全的轉譯 | Printf("%q","Go語言") | "Go語言"
%x
| 十六進制,小寫字母,每字節兩個字符 | Printf("%x","golang") | 676f6c616e67
%X
| 十六進制,大寫字母,每字節兩個字符 | Printf("%X","golang") | 676F6C616E67
指針:
佔位符 | 說明 | 示例 | 輸出 |
---|---|---|---|
%P |
十六進制表示,前綴 0x | Printf("%p",&person) | 0xc0420341c0 |
其他:
佔位符 | 說明 | 示例 | 輸出 |
---|---|---|---|
+ |
總是輸出數值的正負號;對%q(%+q)會生成全部是ASCII字符的輸出(通過轉義) | Printf("%+q","中文") | "\u4e2d\u6587" |
- |
在輸出右邊填充空白而不是默認的左邊(即從默認的右對齊切換爲左對齊); | ||
# |
切換格式:八進制數前加0(%#o) | Printf("%#0",46) | |
十六進制數前加0x(%#x)或0X(%#X) | Printf("%#x",46) | 0x2e | |
指針去掉前面的0x(%#p);) | fmt.Printf("%#p",&person) | c0420441b0 | |
對%q(%#q),如果strconv.CanBackquote返回真會輸出反引號括起來的未轉義字符串; | Printf("%#q",'中') | '中' | |
對%U(%#U),如果字符是可打印的,會在輸出Unicode格式、空格、單引號括起來的go字面值; | Printf("%#U",'中') | U+4E2D '中' | |
' ' |
(空格)爲數值中省略的正負號流出空白(% d); | Printf("% d",16) | 16 |
以十六進制(% x,% X)打印字符串或切片時,在字節之間用空格隔開 | Printf("% x","abc") | 61 62 63 | |
0 |
使用0而不是空格填充,對於數值類型會把填充的0放在正負號後面 |
函數
// Print 將參數列表 a 中的各個參數轉換爲字符串並寫入到標準輸出中。
// 非字符串參數之間會添加空格,返回寫入的字節數。
func Print(a ...interface{}) (n int, err error)
Println
// Println 功能類似 Print,只不過最後會添加一個換行符。
// 所有參數之間會添加空格,返回寫入的字節數。
func Println(a ...interface{}) (n int, err error)
Printf
// Printf 將參數列表 a 填寫到格式字符串 format 的佔位符中。
// 填寫後的結果寫入到標準輸出中,返回寫入的字節數。
func Printf(format string, a ...interface{}) (n int, err error)
Fprintf
// 功能同上面三個函數,只不過將轉換結果寫入到 w 中。
func Fprint(w io.Writer, a ...interface{}) (n int, err error)
func Fprintln(w io.Writer, a ...interface{}) (n int, err error)
func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error)
Sprintf
// 功能同上面三個函數,只不過將轉換結果以字符串形式返回。
func Sprint(a ...interface{}) string
func Sprintln(a ...interface{}) string
func Sprintf(format string, a ...interface{}) string
Errorf
// 功能同 Sprintf,只不過結果字符串被包裝成了 error 類型。
func Errorf(format string, a ...interface{}) error
GoLang官方網址
視頻和代碼
鏈接:https://pan.baidu.com/s/1Vun4KC8RX9mu93I_0tChmw
提取碼:8x8c