ホームページ  >  記事  >  バックエンド開発  >  Go で変数を出力する場合、%v ではなく %d を選択する必要があるのはどのような場合ですか?

Go で変数を出力する場合、%v ではなく %d を選択する必要があるのはどのような場合ですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-23 04:55:10187ブラウズ

When Should You Choose %d Over %v for Printing Variables in Go?

変数の出力に %v への過度の依存を避ける

一方、%v は整数 (%d) と文字列 (%d) の両方を出力する多用途の方法を提供します。 %s)、それを排他的に使用すると、意図しないエラーが発生する可能性があります

デフォルト値の書式設定と正確な型の書式設定

%d は、整数を基数 10 で出力するように fmt パッケージに明示的に指示します。対照的に、%v はデフォルトの書式設定方法。これはタイプによって異なります。

Stringer インターフェイス実装オーバーライド

オブジェクトが fmt.Stringer インターフェイスを実装し、カスタム String() メソッドを提供する場合、%v はそのメソッドを優先します。デフォルトの書式設定。整数をカスタム文字列としてではなく数値として出力する場合、これにより予期しない結果が生じる可能性があります。表現。

例:

type MyInt int

func (mi MyInt) String() string {
    return fmt.Sprintf("*%d*", int(mi))
}

func main() {
    mi := MyInt(2)
    fmt.Printf("%d %v", mi, mi)
}

出力:

2 *2*

推奨事項:

  • 特に %d を使用します正確な数値表現を保証するには、整数を使用します。
  • カスタマイズされた文字列表現が必要なオブジェクトを印刷する場合は、%v を使用します。
  • コードの精度と可読性を維持するには、%v のみに依存することは避けてください。

以上がGo で変数を出力する場合、%v ではなく %d を選択する必要があるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。