Golang の関数によって返されるインターフェース {} 値のタイプを判別する

王林
リリース: 2024-02-05 11:49:27
転載
1126 人が閲覧しました

确定 Golang 中函数返回的接口 {} 值的类型

#質問の内容

列挙から値を返す関数があります。列挙は次のように定義されます:

リーリー

Visit メソッドの署名は次のとおりです

リーリー

メソッドを呼び出した後、DataType 型の値を受け取り、その型と戻り値を次の行に出力します。

リーリー

出力は次のとおりです:

リーリー

ここまでは順調ですが、比較する必要があります。それが私が抱えている問題で、Golang についてはあまり詳しくありません。私は次のものを持っています:

リーリー

これは、戻り値の型の検証をどのように進めればよいのかわかりません。次の行を試しても、必要なコード (この場合は VOID を返すこと) が実行されません。私の質問は、戻り値の型を比較して、結果に基づいて特定のアクションを実行する方法です。次のことも試しました:

リーリー

この場合、スイッチ内部の状況も満たされていません。私の質問は基本的に、関数呼び出しから返されるインターフェース値のタイプを決定する方法です。{}


正解


@Charlie Tumahaiは正しいと思います。問題は価値観の不一致です。

Go Playground で小さな例 を試してみましたが、期待通りに動作しました。DataTypeVisit から返された場合、## を使用して #DataType## の比較を行います。 # は true である可能性があります。 返される型

DataType

型である必要があります。 Visit2 メソッドはこれを示しています。このメソッドは int64 を返しますが、これは BREAK と等しくなりません。 これについては、Go プログラミング言語仕様の 比較演算子:

で説明されています。 リーリー

以上がGolang の関数によって返されるインターフェース {} 値のタイプを判別するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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