golangで複数の型を1つの型として定義する方法

WBOY
リリース: 2024-02-09 10:03:19
転載
600 人が閲覧しました

golangで複数の型を1つの型として定義する方法

golang では、データをより柔軟に処理するために、複数の型を 1 つの型として定義する必要がある場合があります。この問題に対して、PHP エディター Xinyi が解決策を皆さんに提供します。インターフェイス型を使用すると、複数の異なる型を 1 つの型として定義できます。インターフェイス タイプは、特定の実装を指定せずにメソッドのセットを定義できます。このようにして、このインターフェイスを複数の型に対して実装し、このインターフェイス型を使用して統合された操作と処理を行うことができます。このアプローチにより、コード構造が簡素化されるだけでなく、コードの可読性と保守性も向上します。続いて、具体的な導入手順を見ていきましょう!

質問内容

func GetFailedReasonAndErr (xxx) (string, error){
...
}

func AnyFailed (args ...(string, error)) {
   for _, arg := range args {
      if arg.error != nil {
         return arg
       }
   }
}

func main () {
    reason, err := AnyFailed(GetFailedReasonAndErr(yyy), GetFailedReasonAndErr(zzz))
    println(reason, err)
}
ログイン後にコピー

「args ...(string, error)」が許可されていないため、上記のコードはコンパイルできません。 (String, Error) を型として定義できますか?それとももっと良い方法があるでしょうか? (構造体は使えますか?) のように : typereasonanderror(String, Error)

回避策

(String, Error) を型として定義できますか?

いいえ、この構文は使用されません。 go にはタプルがありません。

(構造体は使用できますか?) たとえば、「reasonanderror (string, error)」と入力します。

はい、構造体の型を宣言して使用します。構造体の型を宣言する構文は次のとおりです。

リーリー

次に、それを使用するには、次の操作を行います:

リーリー

以上がgolangで複数の型を1つの型として定義する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!