この記事では、golang に関する関連知識を紹介します。主に golang のプレースホルダーについて説明します。興味のある友人はぜひ読んでください。皆さんのお役に立てれば幸いです。
xdm、C/C 言語を記述する場合、%s、%d、%c、%p などの書式制御文字が使用されます。
golang を記述する場合、プレースホルダーと呼ばれる、対応する形式制御文字もありますが、このプレースホルダーを記述するには、それに対応する対応するデータが必要であり、いじることはできません。
デモを作成して、上記のプレースホルダーの効果とそれがどのように見えるかを確認します。
type Animal struct { hobby string } func main() { name := "xiaomotong" age := 19 hh := Animal{"basketball"} fmt.Printf("name = %s , age = %d , hh = %v\n\n", name, age, hh) fmt.Printf("hh = %+v , hh= %#v\n\n", hh, hh) fmt.Printf("name = %T , age = %T , hh = %T\n\n", name, age, hh) fmt.Printf("%q", 0x8989) }
上記コード実行の効果は次のとおりです:
# go run main.go name = xiaomotong , age = 19 , hh = {basketball} hh = {hobby:basketball} , hh= main.Animal{hobby:"basketball"} name = string , age = int , hh = main.Animal '覉'
上記の効果からわかります:
%q は一重引用符で囲まれた文字リテラル値を表し、Go によって安全にエスケープされます。構文、xdm に興味がある場合は、印刷とデバッグを試して効果を確認してください。
$s は文字列を表します。
$d は 10 進数を表します。
%v は、デフォルトの形式を表します。
% v は、構造を印刷するときに、対応するフィールド名が追加されることを示します
%#v対応するデータ構造の Golang 言語の表現を示します
あまり使用されないプレースホルダーfunc main() { a := true num := 88 uni := 0x8989 fmt.Printf("%t\n", a) fmt.Printf("%b\n", num) fmt.Printf("%c\n", 0x8989) fmt.Printf("uni = %U , uni = %#U\n", uni, uni) }
上記のコードの実行効果は次のとおりです:
# go run main.go true 1011000 覉 uni = U+8989 , uni = U+8989 '覉'上記の効果からわかります: % t はブール値のプレースホルダーを表します
%b はバイナリ データを表します
#%c は対応する Unicode コード ポイントで表される文字を表します%U は、データを Unicode 形式仕様に変換できることを表します。つまり、先頭の
%#U は、データを Unicode に対応する文字に変換できることを意味します。デモ内のテキストは次のようになります。
jī 基数と浮動小数点 プレースホルダーを使用します
func main() { num := 888 fNum := 888.99 fmt.Printf("num = %2d , num = %07d\n", num, num) fmt.Printf("num = %x , num = %#x\n", num, num) fmt.Printf("num = %f , num = %.3f\n", fNum, fNum) }
- は合計 2 桁を意味します。2 桁未満の場合は、前にゼロを追加します。
d は合計 7 桁を意味します。 7 桁未満の場合は、先頭にゼロを追加します。
%x は 16 進数を表し、すべて小文字の%#x は 16 進数を表し、前に 0x
# が付きます。 ##%f は浮動小数点型データを表します。デフォルトは 6 桁を維持します。##%.3f は浮動小数点型データを表し、小数点以下 3 桁を保持します#ポインタ プレースホルダ
%p# go run main.go num = 888 , num = 0000888 num = 378 , num = 0x378 num = 888.990000 , num = 888.990
func main() { ptr := "xiaomotong" fmt.Printf("ptr = %p , ptr = %#p\n", &ptr, &ptr) }
が含まれないことを意味します。 [関連する推奨事項: Go ビデオ チュートリアル
]以上がgolang プレースホルダーを徹底的に理解するための 1 つの記事の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。