Go言語fmtパッケージPrintfメソッド
18054 ワード
1、printおよびprintlnメソッド
2、printfメソッドのフォーマットの説明は以下の通りです.
golangには'%u'ポイントがありません.整数が符号なしタイプの場合、デフォルトでは符号なしとして印刷されます.
幅と精度の制御形式はUnicode符号点単位である.幅は、この数値占有領域の最小幅である.精度は小数点以下の桁数です.オペランドのタイプがintの場合、幅と精度は文字'*'で表すことができます.
%g/%Gの場合、精度はすべての数値の合計です.たとえば、123.45、%.4gは123.5を印刷します(%6.2 fは123.45を印刷します).
%eと%fのデフォルト精度は6です.
ほとんどの数値タイプでは、幅は出力の最小文字数であり、必要に応じてフォーマットされた形式にスペースが埋め込まれます.
一方,文字列タイプ,精度を出力の最大文字数とし,必要に応じて直接遮断する.
/*
fmt I/O , C printf scanf。 C, 。
*/
//print , ,
fmt.Print("a", "
") // a
fmt.Print("a", "b", "
") // ab
fmt.Print('a', "
") // 97
fmt.Print('a', 'b', "
") // 97 98
fmt.Print(12, "
") // 12
fmt.Print(12, 13, "
") // 12 13
//Println
, ,
fmt.Println("---------------------------------")
fmt.Println("a") // a
fmt.Println("a", "b") // a b
fmt.Println('a') // 97
fmt.Println('a', 'b') // 97 98
fmt.Println(12) // 12
fmt.Println(12, 13) // 12 13
fmt.Println("
", 12, 13) // 12 13 12
2、printfメソッドのフォーマットの説明は以下の通りです.
#
type Human struct { Name string } var people = Human{Name:"zhangsan"}
%v 。 Printf("%v", people) {zhangsan}, %+v , Printf("%+v", people) {Name:zhangsan} %#v Go Printf("#v", people) main.Human{Name:"zhangsan"} %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) 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.2 fは123.45を印刷します).
%eと%fのデフォルト精度は6です.
ほとんどの数値タイプでは、幅は出力の最小文字数であり、必要に応じてフォーマットされた形式にスペースが埋め込まれます.
一方,文字列タイプ,精度を出力の最大文字数とし,必要に応じて直接遮断する.