囲碁は%d、%pを、体積%などのプレースホルダでの使用

図1に示すように、あなたは最初のプレースホルダは、何を表しているか知っておくべきこと

これらは死んだ知識は、一般的なものは、一般的にライン上で直接ルックアップテーブルを使用していない、覚えています

printf関数へとC. scanfの同様のFMTパッケージの実装I / O機能を、書式設定golang

変数および定義の例種類

ヒトのstruct {入力
名文字列
}
VARの人々 =ヒト{「zhangsan」名前}

1)通常のプレースホルダ

プレースホルダ 説明 例えば 輸出
体積% それぞれのデフォルトフォーマットを値。 printf( "%のV"、人) {} Zhangsan
%+ V 構造を印刷する場合、フィールド名が追加されます printf( "%+ V"、人) {名:zhangsan}
%#V 値に対応する構文のゴー表現 printf( "#1 V"、人) main.Human {名: "zhangsan"}
%T 値構文記法のゴー対応タイプ printf( "%のT"、人) main.Human
%% リテラルパーセント記号プレースホルダ値ではありません printf( "%%")

2)ブールプレースホルダ

プレースホルダ 説明 例えば 輸出
%トン trueまたはfalse printf( "%tの" 真)

3)整数プレースホルダ

プレースホルダ 説明 例えば 輸出
%bの バイナリ表現 printf( "%のB"、5) 101
%のC 示された点に対応するUnicode文字コード printf( "%のC"、0x4E2D)
%dの 小数表現 printf( "%d個"、0x12を) 18
進表現 printf( "%dの"、10) 12
%qを 文字リテラルの周りの単一引用符は、文法的には安全ゴーでエスケープ printf( "%のQ"、0x4E2D) 「は、」
%バツ AF小文字の形式で16進表現、 printf( "%のX"、13) D
%バツ 大文字AFの文字の形の16進表現、 printf( "%のX"、13) D
%U Unicode形式:U + 1234、 "U +%04X" に相当 printf( "%U"、0x4E2D) U + 4E2D

4)浮動小数点の一部と複合体(実部と虚部)

プレースホルダ 説明 例えば 輸出
%bの 小数部は、インデックスは、フォーマット変換のstrconv.FormatFloat「B」と一致2つの科学的表記法の力ではありません。例えば-123456p-78    
%eは 科学的表記法、例えば-1234.456e + 78 printf( "%電子"、10.2) 1.020000e + 01
%E 科学的表記法、例えば-1234.456E + 78 printf( "%電子"、10.2) 1.020000E + 01
%F 何小数点指数は123.456、例えば、ありません printf( "%のF"、10.2) 10.200000
%グラム %のE F%を選択すること、または(エンド0を含まない)よりコンパクトな出力を生成するように記載する場合 printf( "%のG"、10.20) 10.2
%G %Eの%Fを選択し、または(エンド0を含まない)よりコンパクトな出力を生成するように記載する場合 printf( "%G"、10.20 + 2I) (+ 2I 10.2)

5)バイト文字列のセクション

プレースホルダ 説明 例えば 輸出
%sの これは、出力文字列(文字列またはタイプを[]バイト)を示しています printf( "%s" は、[]バイト( "ゴー语言")) ゴー言語
%qを 安全に移動文法でエスケープされた文字列、周りに二重引用符 printf( "%qを"、 "ゴー语言") 「ゴー言語」
%バツ 進、小文字、1文字ごとに2つのバイト printf( "%X"、 "golang") 676f6c616e67
%バツ 進、大文字、1文字ごとに2つのバイト printf( "%のX"、 "golang") 676F6C616E67

6)ポインタ

プレースホルダ 説明 例えば 輸出
%pを 進表記で、接頭辞の0x Printf("%p", &people) 0x4f57f0

7)其它标记

占位符 说明 举例 输出
+ 总打印数值的正负号;对于%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而非空格;对于数字,这会将填充移到正负号之后    

8)其他

golang没有 '%u' 点位符,若整数为无符号类型,默认就会被打印成无符号的。

宽度与精度的控制格式以Unicode码点为单位。宽度为该数值占用区域的最小宽度;精度为小数点之后的位数。
操作数的类型为int时,宽度与精度都可用字符 '*' 表示。

对于 %g/%G 而言,精度为所有数字的总数,例如:123.45,%.4g 会打印123.5,(而 %6.2f 会打印123.45)。

%e 和 %f 的默认精度为6

对大多数的数值类型而言,宽度为输出的最小字符数,如果必要的话会为已格式化的形式填充空格。

而以字符串类型,精度为输出的最大字符数,如果必要的话会直接截断。

2、了解了基本的占位符对应什么格式就要使用占位符了

それ以外の場合は、出力文字列を意志、()の出力形式は、回避はのprintlnを(使用する)ためのprintf FMTの使用に通常fmt.Printf()で、使用するのは簡単です。

主な内容は、ブログの庭に再現されている状況3のブログの

:元を参照してくださいgolang FMTフォーマット「プレースホルダ」を



著者:ユハの
リンクします。https://www.jianshu.com/p/66aaf908045eの
出典:ジェーンの本は
、著者が著作権を保有しています。著者は認可商業転載してください接触、非商用の転載は、ソースを明記してください。

おすすめ

転載: www.cnblogs.com/show58/p/12615055.html