1. ホーム
  2. go

[解決済み] Go 言語で実行時に変数の型をチェックする方法

2023-04-22 02:46:45

質問

以下のようなC言語の関数がいくつかあります。

CURLcode curl_wrapper_easy_setopt_long(CURL* curl, CURLoption option, long param);
CURLcode curl_wrapper_easy_setopt_str(CURL* curl, CURLoption option, char* param);

これらを一つのGo関数として、以下のように公開したいと思います。

func (e *Easy)SetOption(option Option, param interface{})

をチェックできるようにする必要があります。 パラメータ の型を実行時にチェックできるようにする必要があります。どのようにそれを行うのですか、そして、これは良いアイデアですか(そうでない場合は、この場合の良い習慣は何ですか)?

どのように解決するのですか?

こちらのタイプアサーションをご覧ください。

http://golang.org/ref/spec#Type_assertions

私なら、常識的な型(string, uint64)などをアサートして、できるだけ緩く保ち、最後にネイティブ型への変換を実行します。