import "fmt"軟體包fmt實現了格式化的i / o,其功能類似於c的printf和scanf。格式'動詞'來自c,但更簡單。
已有示例**:
type person struct
通用:
佔位符說明
示例輸出
%v
相應值的預設格式
printf("%v",person )
%+v
類似%v,但輸出結構體時會新增欄位名式
printf("%+v",person )
%#v
相應值的go語法表示
printf("#v",person )
main.person=
%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 ...inte***ce{}) (n int, err error)
// println 功能類似 print,只不過最後會新增乙個換行符。
// 所有引數之間會新增空格,返回寫入的位元組數。
func println(a ...inte***ce{}) (n int, err error)
// printf 將引數列表 a 填寫到格式字串 format 的佔位符中。
// 填寫後的結果寫入到標準輸出中,返回寫入的位元組數。
func printf(format string, a ...inte***ce{}) (n int, err error)
// 功能同上面三個函式,只不過將轉換結果寫入到 w 中。
func fprint(w io.writer, a ...inte***ce{}) (n int, err error)
func fprintln(w io.writer, a ...inte***ce{}) (n int, err error)
func fprintf(w io.writer, format string, a ...inte***ce{}) (n int, err error)
// 功能同上面三個函式,只不過將轉換結果以字串形式返回。
func sprint(a ...inte***ce{}) string
func sprintln(a ...inte***ce{}) string
func sprintf(format string, a ...inte***ce{}) string
// 功能同 sprintf,只不過結果字串被包裝成了 error 型別。
func errorf(format string, a ...inte***ce{}) error
提取碼:8x8c
Go語言從入門到精通 字元型別
字串中的每乙個元素叫做 字元 在遍歷或者單個獲取字串元素時可以獲得字元。go 語言的字元有以下兩種 使用 fmt.printf 中的 t動詞可以輸出變數的實際型別,使用這個方法可以檢視 byte 和 rune 的本來型別,如下 var a byte a fmt.printf d t n a,a va...
Go語言從入門到精通 匿名變數
在使用多重賦值時,如果不需要在左值中接收變數,可以使用匿名變數 anonymous variable 匿名變數的表現是乙個下畫線 使用匿名變數時,只需要在變數宣告的地方使用下畫線替換即可。例如 func getdata int,int a,getdata b getdata fmt.println ...
Go語言從入門到精通 資料型別
在 go 程式語言中,資料型別用於宣告函式和變數。資料型別的出現是為了把資料分成所需記憶體大小不同的資料,程式設計的時候需要用大資料的時候才需要申請大記憶體,就可以充分利用記憶體。go 語言按類別有以下幾種資料型別 序號型別和描述 1布林型 布林型的值只可以是常量 true 或者 false。乙個簡...