Error() fmt.Println の String() をオーバーライドします
Go プログラミング言語では、型が String() と String() の両方を実装する場合、 Error() メソッドでは、fmt.Println 関数が Error() より優先されます。これは、両方のメソッドが特定の型に対して実装されている場合、fmt.Println は Error() によって生成された出力を使用することを意味します。
これが当てはまる理由を理解するには、 fmtパッケージ。ドキュメントによると、fmt がさまざまな種類のデータをフォーマットする方法を管理する特定のルールがあります。これらのルールは次の順序で適用されます。
提供された例では、 Person 型は String() メソッドと Error() メソッドの両方を実装します。ただし、fmt.Println 関数を呼び出して Person 型を出力する場合、String() メソッドの代わりに Error() メソッドが呼び出されます。これは、fmt パッケージのドキュメントで概説されているルールに従って、Error() メソッドが String() メソッドよりも優先されるためです。
したがって、型が String() メソッドと Error() メソッドの両方を実装する場合、 fmt.Println 関数は常に Error() メソッドの出力を使用します。これは、書式設定ルールの順序で Error() メソッドが String() メソッドよりも上位にあるためです。
以上がGo ではなぜ `fmt.Println` が `String()` よりも `Error()` を好むのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。