問題タブ [go-interface]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - インターフェイスを使用して2つの異なる構造体を結合するには?
次のコードがあります。
このコードはエラーを返します:
./start.go:20: DataError リテラル (DataError 型) を代入の Data 型として使用できません
response
異なるタイプの var データに割り当てることができなかったようです(私の場合DataError
)。可能な解決策は、インターフェースを介して結合Data
および構造化することであると聞きました。DataError
それとも、別のより良い解決策がありますか?
この問題を解決する方法を教えてください。
ありがとう
go - 構造体の作成時にインターフェイスを正しく使用する
それぞれにインターフェースを実装する構造体を持ついくつかのパッケージがある小さなプログラムを作成しようとしています。アイデアは、ユーザー入力に基づいて、特定の構造体を構築するために使用するパッケージを選択し、それらすべてが持つはずの関数を呼び出すことができるということです。事前に型がわからないので、 ainterface{}
を使用してそれを前方宣言として使用できるという印象を受けました (最後のコード スニペットを参照)。次のようなものがあります。
別のパッケージにはbob
、次のようなものがあります。
私のメインパッケージには、次のようなものがあります。
/ ビルド / などを実行すると、次のエラーが発生します。
私が間違っていることについて少し混乱しています...私がどのように使用すべきかについての明確化interface{}
者は、非常に役に立ちます!
go - Golang でコードを DRY に保つ方法
編集++:
Goでコードを繰り返さないようにするには?
タイプ用に 3 つのメソッドを実装しましたが、インターフェイスを実装するには、タイプWolf
用のすべてのメソッドを実装する必要がありTiger
ます。ただしKingdom
、Phylum
メソッドは両方のタイプで同じです。Family
タイプのメソッドのみを実装することはどういうわけか可能ですかTiger
:
タイプごとに 3 つの方法をすべて繰り返さないようにするにはどうすればよいでしょうか。
免責事項
メソッド内の単純な文字列の戻り値と混同しないでください。実際のケースでは、定義済みの値だけでなく、さまざまなメソッドの実装が必要です。このばかげたスタイルを使用して、私はあなたの脳を汚すことを避けたい. したがって、スキップメソッドはまったく方法ではありません。ありがとう