Go語言 d, p, v等佔位符

2021-10-18 06:06:33 字數 2834 閱讀 5350

這些是死知識,把常用的記住,不常用的直接查表就行了

golang 的fmt 包實現了格式化i/o函式,類似於c的 printf 和 scanf。

type human struct

var people = human

佔位符說明

舉例輸出

%v相應值的預設格式。

printf("%v", people)

%+v列印結構體時,會新增欄位名

printf("%+v", people)

%#v相應值的go語法表示

printf("#v", people)

main.human

%t相應值的型別的go語法表示

printf("%t", people)

main.human

%%字面上的百分號,並非值的佔位符

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

佔位符說明

舉例輸出

%b無小數部分的,指數為二的冪的科學計數法, 與 strconv.formatfloat 的 'b' 轉換格式一致。例如 -123456p-78

%e科學計數法,例如 -1234.456e+78

printf("%e", 10.2)

1.020000e+01

%e科學計數法,例如 -1234.456e+78

printf("%e", 10.2)

1.020000e+01

%f有小數點而無指數,例如 123.456

printf("%f", 10.2)

10.200000

%g根據情況選擇 %e 或 %f 以產生更緊湊的(無末尾的0)輸出

printf("%g", 10.20)

10.2

%g根據情況選擇 %e 或 %f 以產生更緊湊的(無末尾的0)輸出

printf("%g", 10.20+2i)

(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", &people)

0x4f57f0

佔位符說明

舉例輸出

+總列印數值的正負號;對於%q(%+q)保證只輸出ascii編碼的字元。

printf("%+q", "中文")

"\u4e2d\u6587"

-在右側而非左側填充空格(左對齊該區域)

#備用格式:為八進位制新增前導 0(%#o) 為十六進製制新增前導 0x(%#x)或 0x(%#x),為 %p(%#p)去掉前導 0x; 如果可能的話,%q(%#q)會列印原始 (即反引號圍繞的)字串; 如果是可列印字元,%u(%#u)會寫出該字元的 unicode 編碼形式(如字元 x 會被列印成 u+0078 'x')。

printf("%#u", '中')

u+4e2d

' '(空格)為數值中省略的正負號留出空白(% d); 以十六進製制(% x, % x)列印字串或切片時,在位元組之間用空格隔開

0填充前導的0而非空格;對於數字,這會將填充移到正負號之後

golang沒有 '%u' 點位符,若整數為無符號型別,預設就會被列印成無符號的。

寬度與精度的控制格式以unicode碼點為單位。寬度為該數值占用區域的最小寬度;精度為小數點之後的位數。

運算元的型別為int時,寬度與精度都可用字元 '*' 表示。

對於 %g/%g 而言,精度為所有數字的總數,例如:123.45,%.4g 會列印123.5,(而 %6.2f 會列印123.45)。

%e 和 %f 的預設精度為6

對大多數的數值型別而言,寬度為輸出的最小字元數,如果必要的話會為已格式化的形式填充空格。

而以字串型別,精度為輸出的最大字元數,如果必要的話會直接截斷。

使用起來很簡單,一般配合fmt.printf()使用,因為fmt的printf()是有格式的輸出,切忌使用println(),否則將會以字串的形式輸出。

C語言佔位符 格式佔位符

d,i 代表整數,f 浮點數,s 字串,c char.p 指標,fl 長log,e 科學計數法,g 小數或科學計數法。a,a讀入乙個浮點值 僅c99有效 c讀入乙個字元 d讀入十進位制整數 i讀入十進位制,八進位制,十六進製制整數 o讀入八進位制整數 x,x讀入十六進製制整數 s讀入乙個字串,遇空格...

總結 C 變數,佔位符等相關知識

int 整型 char 字元型 string 字串型別 double 雙精度浮點數 decimal 貨幣值型別 float 浮點數 main方法中,不允許重複申明變數,但可以重複賦值,重複賦值以後原來的變數值被頂替為新賦的值。一.在c 中,有兩種含義 1.聯值符號,當 左右兩邊只要有一邊是字元或者字...

第三課 go語言基礎 佔位符識別符號關鍵字

tags categories s 第二節 go語言的識別符號 第三節 go語言的命名規範 佔位符說明 舉例輸出 v相應值的預設格式 printf v people v列印結構體時,會新增欄位名 printf v people v相應值的go語法表示 printf v people main.hum...