軟體包fmt實現了格式化的i / o,其功能類似於c的printf和scanf。格式』動詞』來自c,但更簡單。
佔位符說明
示例輸出
%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)
佔位符說明
示例輸出
%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放在正負號後面
errorf
fprint
fprintf
fprintln
fscanf
fscanln
gostringer
printf
println
sprint
sprintf
sprintln
sscanf
stringer
package (formats)
package (printers)
go標準命令詳解0 9 go fmt與gofmt
go fmt命令會按照go語言 規範格式化指定 包中的所有go語言原始碼檔案的 所有go語言原始碼檔案即包括命令原始碼檔案 庫原始碼檔案和測試原始碼檔案。注意,當 包還有子 包時,子 包中的go語言原始碼檔案是不包含在內的。也就是說,go fmt命令只會格式化被直接儲存在指定 包對應目錄下的go語言...
gofmt和goimports的縮排
go原生的format格式化都是tab,且使8個字元寬度,但是由於我們團隊都是由php技術轉過來的,然後很多同事都使用golang工具,可以自帶設定縮排為4個空格,所以為了沿用之前的風格,都採用4個空格為縮排。options imports.options然而編譯後並不生效,自動格式化 仍然還是ta...
調整gofmt和goimports的縮排
goimports是乙個類似於gofmt的go 格式化工具,除此之外還可以自動修正import的package,但僅限於標準庫。goimports的縮排預設是8個長度單位的tab,但個人已經習慣了4個長度單位,所以對goimports進行了一下修改,使其行首縮排4格。2 修改tab相關引數 func...