図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の
出典:ジェーンの本は
、著者が著作権を保有しています。著者は認可商業転載してください接触、非商用の転載は、ソースを明記してください。