golang中的fmt包實現了格式化I/O函數,類似於C的printf和scanf。
#定義示例類型和變量
type Human struct {
Name string
}
var people = Human{Name:"zhangsan"}
普通佔位符
佔位符 | 說明 | 舉例 | 輸出 |
---|---|---|---|
%v | 相應值的默認輸出 | Printf("%v",people) | {zhangsan} |
%+v | 打印結構體時,會添加字段名 | Printf("%+v",people) | {Name:zhangsan} |
%#v | 相應值的Go語法表示 | Printf("#v",people) | main.Human{Name:"zhangsan"} |
%% | 字面上的百分號,並非值得佔位符 | 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("%d",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 |
指針
佔位符 | 說明 | 舉例 | 輸出 |
---|---|---|---|
%p | 十六進制表示,前綴 0x | Printf("%p",&people) | 0x4f57f0 |