go fmt列印詳解

2021-10-06 11:51:42 字數 2894 閱讀 4085

軟體包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

print

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...