問題タブ [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.

0 投票する
2 に答える
2500 参照

go - インターフェイスを使用して2つの異なる構造体を結合するには?

次のコードがあります。

このコードはエラーを返します:

./start.go:20: DataError リテラル (DataError 型) を代入の Data 型として使用できません

response異なるタイプの var データに割り当てることができなかったようです(私の場合DataError)。可能な解決策は、インターフェースを介して結合Dataおよび構造化することであると聞きました。DataErrorそれとも、別のより良い解決策がありますか?

この問題を解決する方法を教えてください。

ありがとう

0 投票する
2 に答える
46 参照

go - 構造体の作成時にインターフェイスを正しく使用する

それぞれにインターフェースを実装する構造体を持ついくつかのパッケージがある小さなプログラムを作成しようとしています。アイデアは、ユーザー入力に基づいて、特定の構造体を構築するために使用するパッケージを選択し、それらすべてが持つはずの関数を呼び出すことができるということです。事前に型がわからないので、 ainterface{}を使用してそれを前方宣言として使用できるという印象を受けました (最後のコード スニペットを参照)。次のようなものがあります。

別のパッケージにはbob、次のようなものがあります。

私のメインパッケージには、次のようなものがあります。

/ ビルド / などを実行すると、次のエラーが発生します。

私が間違っていることについて少し混乱しています...私がどのように使用すべきかについての明確化interface{}者は、非常に役に立ちます!

0 投票する
3 に答える
2567 参照

go - Golang でコードを DRY に保つ方法

編集++:

Goでコードを繰り返さないようにするには?

タイプ用に 3 つのメソッドを実装しましたが、インターフェイスを実装するには、タイプWolf用のすべてのメソッドを実装する必要がありTigerます。ただしKingdomPhylumメソッドは両方のタイプで同じです。Familyタイプのメソッドのみを実装することはどういうわけか可能ですかTiger:

タイプごとに 3 つの方法をすべて繰り返さないようにするにはどうすればよいでしょうか。

免責事項

メソッド内の単純な文字列の戻り値と混同しないでください。実際のケースでは、定義済みの値だけでなく、さまざまなメソッドの実装が必要です。このばかげたスタイルを使用して、私はあなたの脳を汚すことを避けたい. したがって、スキップメソッドはまったく方法ではありません。ありがとう