私はドキュメントを見て、この情報を見つけることができませんでした。 構造体を指定すると、構造体を印刷するときにfmt.Print
ファミリによって自動的に使用されるメソッド(たとえば、func (k Koala) String() string
)を実装できますか? どこかにインタフェースがあるかもしれませんが、見つけられませんでした。`fmt.Print`が使う` ToString() `と同じGoがありますか?
1
A
答えて
5
はい、それはfmt.Stringer()
と呼ばれるストリンガーは、その値の「ネイティブ」フォーマットを定義する文字列方法を有する任意の値で実現されます。 Stringメソッドは、文字列を受け入れる形式やPrintなどの書式なしのプリンタにオペランドとして渡された値を出力するために使用されます。
type Stringer interface { String() string }
fmt.Println("foo")
とfmt.Println(someStringer)
が等しく有効であるため、*print*
機能がStringer()
が自分自身をインターフェースは受け付けておりません。私はあなたが正確これがどのように機能するかが、簡単で*print*
機能を見にprint.go
source codeを経るお勧めします。
interface{}
を受け入れます。- 内蔵タイプかどうかを確認してください(例:
string
、int
など)。そうであればフォーマットしてください。 - タイプに
.String()
メソッドがあるかどうかを確認し、そのタイプが存在する場合はそれを使用します。
正確なロジックはもう少し複雑です。前述のように、私はあなた自身でソースコードを調べることをお勧めします。それはまったく読みやすいGoです。
関連する問題
- 1. Java:JTextAreaのappend()と同じことを行うメソッドがJTextPaneにありますか?
- 2. lxml.etree fromsting()とtostring()が同じデータを返していません
- 3. Redisはディスクストレージと同じように扱う必要がありますか?
- 4. JPAとCMPが同じプロジェクトにあるとどうなりますか?
- 5. jspにignore_user_abort()と同じPHP関数がありますか?
- 6. なぜ "None"は "np.newaxis"と同じ効果がありますか?
- 7. アンドロイドと同じウィジェットがありますか?
- 8. setuidはsudoと同じ効果がありますか?
- 9. CassandraにSQL:LIKE Conditionと同じクエリがありますか?
- 10. dynlmとdlmには同じ数式がありますか?
- 11. GROUP_CONCAT()内の同じデータに同じ出力があります
- 12. DateTimeがありません?.ToString(string)overload?
- 13. アイデンティティサーバのヘビキャストドメインがAPIマネージャドメインと同じである必要がありますか?
- 14. PHPの__toStringメソッドに相当するGoがありますか?
- 15. XMLEncoderと同じパターンを使用するJava JSONライブラリがありますか?
- 16. Apacheとiisは同じサーバーと同じポートにあります
- 17. (* .GO)WebStormで同じ
- 18. oracleと同じようにdb2にprint文がありますか
- 19. 同じAWS Cognitoユーザープールに複数のアプリがあると、同じユーザーのcognitoIDは同じになりますか?
- 20. mysqlレコードとポストレコードは同じですが同じではありません
- 21. depとbazel Goルールの間にリンクがありますか?
- 22. 2つの同じコントロールが同じグリッドにありますか? (WPF/XAML)ここ
- 23. 同じタイプではありませんが、同じタイプではない可能性があります。
- 24. ログアウトURLは同じウィンドウと同じタブにあります
- 25. JSのすべてのオブジェクトにtoString()メソッドがありますか?
- 26. 同じページに2つのかみそりの形があります。 2番目にエラーがあります
- 27. 2つのtoStringメソッドがありますか?
- 28. フォームとデータベースのフィールド名は同じである必要がありますか?
- 29. Docker - コンテナOSがホストOSと同じである必要があります
- 30. tf.nn.softmax_cross_entropy_with_logits()エラー:ログとラベルが同じサイズである必要があります