Go言語fmtパッケージPrintfメソッド

18054 ワード

1、printおよびprintlnメソッド
 
	/*
	  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 UnicodeU+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(%+qASCII 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です.
ほとんどの数値タイプでは、幅は出力の最小文字数であり、必要に応じてフォーマットされた形式にスペースが埋め込まれます.
一方,文字列タイプ,精度を出力の最大文字数とし,必要に応じて直接遮断する.