Goで継承された構造体のプロパティを取得するにはどうすればよいですか?

JavaProphet:

Goでは、

type PacketType1 struct {
    myValue string
}
type PacketType2 struct {
    myValue2 string
}

これらを総称的に渡して、型を何らかの方法でチェックできますか?インターフェイスを調べましたが、それらは関数を継承するためのもののようです。名前に基づくと、これはパケットシステム用です。これらのパケットを引数として関数に渡し、タイプを確認し、構造体のプロパティを取得する方法などがあります。これが不可能な場合は、どうすればよいでしょうか。 Goでパケットシステムを実装するのに最適ですか?

Milo Christiansen:

値をとして渡し、interface{}タイプスイッチを使用して、渡されたタイプを検出することができます。または、必要な共通機能を公開するインターフェースを作成して、それを使用することもできます。

インターフェイスとタイプスイッチ:

func Example(v interface{}){
    switch v2 := v.(type) {
    case PacketType1:
        // Do stuff with v1 (which has type PacketType1 here)
    case PacketType2:
        // Do stuff with v1 (which has type PacketType2 here)
    }
}

共通インターフェース:

type Packet interface{
    GetExample() string
    // More methods as needed
}

// Not shown: Implementations of GetValue() for all types used
// with the following function

func Example(v Packet) {
    // Call interface methods
}

どちらの方法が最適かは、何をしているのかによります。ほとんどのタイプが似ており、わずかな違いがある場合は、1つまたは複数の一般的なインターフェイスがおそらく最良です。それらがまったく異なる場合は、タイプスイッチの方が良い場合があります。どちらが最も短く、最も明確なコードを生成します。

2つの方法を組み合わせて使用​​するのが最善の場合もあります...

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Swiftの構造体に格納されている変数のプロパティを変更するにはどうすればよいですか?

分類Dev

C#で継承のプロパティを使用するにはどうすればよいですか?

分類Dev

cssで子供のプロパティを継承するにはどうすればよいですか?

分類Dev

cssで子供のプロパティを継承するにはどうすればよいですか?

分類Dev

継承されたコントロールのプロパティとしてTextFormatFlagsを使用するにはどうすればよいですか?

分類Dev

Goのhtml /テンプレートでマップ要素の構造体フィールドを取得するにはどうすればよいですか?

分類Dev

WPF:継承されたプロパティ値のソースを見つけるにはどうすればよいですか

分類Dev

構造体またはJSONドキュメントのプロパティの数を数えるにはどうすればよいですか?

分類Dev

構造体またはJSONドキュメントのプロパティの数を数えるにはどうすればよいですか?

分類Dev

AEM 6.2でページプロパティを継承するにはどうすればよいですか?

分類Dev

構造体の特定のプロパティがnullかどうかを確認するにはどうすればよいですか?

分類Dev

継承を含むArrayListsにプロパティを追加するにはどうすればよいですか?

分類Dev

EFコア式で継承されたプロパティを使用するにはどうすればよいですか?

分類Dev

継承されたプロパティをEFデータストアに動的に追加するにはどうすればよいですか?

分類Dev

構造体から継承された静的変数を定義するにはどうすればよいですか?

分類Dev

swiftでオプションのプロパティを持つ構造体を定義して使用するにはどうすればよいですか?

分類Dev

GCC Cでパックされた構造体の整列された配列を取得するにはどうすればよいですか?

分類Dev

すべての要素に基本クラスから1つの特定のプロパティを継承させるにはどうすればよいですか?

分類Dev

構造体をコピーし、そのプロパティの1つを同時に変更するにはどうすればよいですか?

分類Dev

パラメータが基本型として宣言されている場合、継承されたオブジェクトのプロパティを取得するにはどうすればよいですか?

分類Dev

構造体のリスト型プロパティを初期化するにはどうすればよいですか?vb.netで

分類Dev

標準モデルのクラス/構造体を観察可能なプロパティに変換するにはどうすればよいですか?

分類Dev

構造体はどのようにそれ自体を継承できますか?

分類Dev

goで親構造体のマップを作成するにはどうすればよいですか?

分類Dev

ネストされたクラス構造でプロパティが重複しないようにするにはどうすればよいですか?

分類Dev

C ++の概念:「concept」を使用してテンプレート化された構造体のプロパティを確認するにはどうすればよいですか?

分類Dev

別の関数のプロパティとメソッドを継承する関数をJavascriptで作成するにはどうすればよいですか?

分類Dev

この例に従ってテンプレート化された構造体を構築するにはどうすればよいですか?

分類Dev

構造体のフィールド数をプログラムで取得するにはどうすればよいですか?

Related 関連記事

  1. 1

    Swiftの構造体に格納されている変数のプロパティを変更するにはどうすればよいですか?

  2. 2

    C#で継承のプロパティを使用するにはどうすればよいですか?

  3. 3

    cssで子供のプロパティを継承するにはどうすればよいですか?

  4. 4

    cssで子供のプロパティを継承するにはどうすればよいですか?

  5. 5

    継承されたコントロールのプロパティとしてTextFormatFlagsを使用するにはどうすればよいですか?

  6. 6

    Goのhtml /テンプレートでマップ要素の構造体フィールドを取得するにはどうすればよいですか?

  7. 7

    WPF:継承されたプロパティ値のソースを見つけるにはどうすればよいですか

  8. 8

    構造体またはJSONドキュメントのプロパティの数を数えるにはどうすればよいですか?

  9. 9

    構造体またはJSONドキュメントのプロパティの数を数えるにはどうすればよいですか?

  10. 10

    AEM 6.2でページプロパティを継承するにはどうすればよいですか?

  11. 11

    構造体の特定のプロパティがnullかどうかを確認するにはどうすればよいですか?

  12. 12

    継承を含むArrayListsにプロパティを追加するにはどうすればよいですか?

  13. 13

    EFコア式で継承されたプロパティを使用するにはどうすればよいですか?

  14. 14

    継承されたプロパティをEFデータストアに動的に追加するにはどうすればよいですか?

  15. 15

    構造体から継承された静的変数を定義するにはどうすればよいですか?

  16. 16

    swiftでオプションのプロパティを持つ構造体を定義して使用するにはどうすればよいですか?

  17. 17

    GCC Cでパックされた構造体の整列された配列を取得するにはどうすればよいですか?

  18. 18

    すべての要素に基本クラスから1つの特定のプロパティを継承させるにはどうすればよいですか?

  19. 19

    構造体をコピーし、そのプロパティの1つを同時に変更するにはどうすればよいですか?

  20. 20

    パラメータが基本型として宣言されている場合、継承されたオブジェクトのプロパティを取得するにはどうすればよいですか?

  21. 21

    構造体のリスト型プロパティを初期化するにはどうすればよいですか?vb.netで

  22. 22

    標準モデルのクラス/構造体を観察可能なプロパティに変換するにはどうすればよいですか?

  23. 23

    構造体はどのようにそれ自体を継承できますか?

  24. 24

    goで親構造体のマップを作成するにはどうすればよいですか?

  25. 25

    ネストされたクラス構造でプロパティが重複しないようにするにはどうすればよいですか?

  26. 26

    C ++の概念:「concept」を使用してテンプレート化された構造体のプロパティを確認するにはどうすればよいですか?

  27. 27

    別の関数のプロパティとメソッドを継承する関数をJavascriptで作成するにはどうすればよいですか?

  28. 28

    この例に従ってテンプレート化された構造体を構築するにはどうすればよいですか?

  29. 29

    構造体のフィールド数をプログラムで取得するにはどうすればよいですか?

ホットタグ

アーカイブ