fmt.Printf
中格式化說明符 彙總
%v
%v
代表使用型別的預設輸出格式的識別符號, 意味著可以使用 %v
列印任何型別,go 語言中的萬能格式符所以可以使用 %v
來表示複數
速查表
格式 | 說明 | |
---|---|---|
%d |
格式化整數 | |
%0d |
用於規定輸出定長的整數 其中開頭的數字 0 是必須的 | |
%g |
格式化浮點型 | |
%n.mg |
用於表示數字 n 並精確到小數點後 m 位,除了使用 g 之外,還可以使用 e 或者 f | |
%f |
格式化浮點數 | |
%X , %x |
格式化 16 進製表示的數字 | |
%b |
位的格式化識別符號 | |
%e |
科學計數表示法 | |
%t |
格式化布林型 | |
%c |
格式化字元 | |
%s |
格式化字串 | |
%U , %u |
Unicode,格式為 U+hhhh 的字串 | |
%p |
格式化指標 | |
%v |
使用型別的預設輸出格式的識別符號 |
除錯相關格式化說明符
格式 | 說明 |
---|---|
%T |
列印某個型別的完整說明 |
%#v |
列印包括欄位和限定型別名稱在內的例項的完整資訊 |
%+v |
列印包括欄位在內的例項的完整資訊 |
程式
package main
import "fmt"
func main() {
//int
var v1 int = 100
fmt.Printf("%d \n" , v1) // 輸出 100
fmt.Printf("%v \n" , v1) // 輸出 100
fmt.Printf("%05d \n" , v1) // 輸出 00100
//bool
var v2 bool = false
fmt.Printf("%t \n", v2) //輸出 fasle
fmt.Printf("%s \n", v2) // 輸出 %!s(bool=false)
// char
var ch int = '\u0041'
var ch2 int = '\u03B2'
var ch3 int = '\u00101234'
fmt.Printf("%d - %d - %d.", ch, ch2, ch3) // integer,輸出 65 - 946 - 1053236
fmt.Printf("%c - %c - %c.", ch, ch2, ch3) // character,輸出 A - β - r
fmt.Printf("%X - %X - %X.", ch, ch2, ch3) // UTF-8 bytes,輸出 41 - 3B2 - 101234
fmt.Printf("%U - %U - %U", ch, ch2, ch3) // UTF-8 code point,輸出 U+0041 - U+03B2 - U+101234
g := func(i int) { fmt.Printf("%d ", i) }
fmt.Printf(" g is of type %T and has value %v\n", g, g)
// g is of type func(int) and has value 0x488e90 %T 列印是變數型別(函式), %v 列印的是(函式)地址
}
注意: 單個字元可以是 int8 (byte 別名) , int16 , 或者int, 因為使用空間最大的單個字元編碼 Unicode 4個位元組就夠了 , 所以4位元組 int 可以包含所有的編碼格式了, ASCII 碼 int8 就夠了
累了 ,先寫這麼多吧,
本作品採用《CC 協議》,轉載必須註明作者和本文連結