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