GoLang GoLang fmt 佔位符詳解

2021-09-25 20:29:28 字數 2262 閱讀 3840

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

# 定義示例型別和變數type humanstructvar 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+78printf("%e",10.2)1.020000e+01%e 科學計數法,例如-1234.456e+78printf("%e",10.2)1.020000e+01%f 有小數點而無指數,例如123.456printf("%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 十六進製制表示,字首0xprintf("%p",&people)0x4f57f0

其它標記佔位符說明舉例輸出+總列印數值的正負號;對於%q(%+q)保證只輸出ascii編碼的字元。printf("%+q","中文")"\u4e2d\u6587"-在右側而非左側填充空格(左對齊該區域)# 備用格式:為八進位制新增前導 0(%#o) printf("%#u", '中') u+4e2d為十六進製制新增前導0x(%#x)或 0x(%#x),為 %p(%#p)去掉前導 0x;如果可能的話,%q(%#q)會列印原始 (即反引號圍繞的)字串;如果是可列印字元,%u(%#u)會寫出該字元的unicode編碼形式(如字元x 會被列印成u+0078'x')。' '(空格)為數值中省略的正負號留出空白(%d);以十六進製制(%x,%x)列印字串或切片時,在位元組之間用空格隔開0填充前導的0而非空格;對於數字,這會將填充移到正負號之後

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

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

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

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

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

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

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

Mybatis佔位符 與佔位符 區別

速度快,能防止sql注入,是佔位符方式,先預編譯,然後填充引數,字串格式,使用者名稱 引數只是下劃線上的內容 是直接拼接到語句上,這種方式需要自己拼括號和引數,但是也可以拼接想執行的任何語句,也就是傳說中的sql注入 詳情如下 在mybatis中使用引數進行sql拼裝經常會使用到 和 兩種引數的設定...

C語言佔位符 格式佔位符

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

佔位符引數

函式宣告的時候,引數可以沒有識別符號 void f int x,int 0,float 1.1 函式f宣告 其實,在c 中,函式定義的時候,也不一定需要識別符號 void f int x,int float flt 函式f的定義 沒有引數名,有一定的特殊之處,那就是中間的這個引數值是不能再函式體中引...