ホームページ >バックエンド開発 >Golang >Golang の関数によって返されるインターフェース {} 値のタイプを判別する

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

王林
王林転載
2024-02-05 11:49:271146ブラウズ

确定 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 までご連絡ください。