像这样声明的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);

我想把它们作为这样的一次执行功能来曝光.

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

所以我需要能够在运行时判断param个类型.我如何做到这一点?这是个好主意吗(如果不是,在这种情况下什么是好的实践)?

推荐答案

请参阅此处的类型断言:

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

我只会断言一个合理的类型(string、uint64)等,并尽可能使其松散,最后执行到本机类型的转换.

Go相关问答推荐

Go - os.userHomeDir()在WSL上返回C:\Users\

Zitadel示例Go Webapp加密密钥

Golang html/模板&需要错误数量的参数1在模板中使用';调用';获得0&q;

未对GoFr中的所有请求进行跟踪

允许在 struct 中使用复合作为函数参数

转到http服务器头内容-类型设置为多部分/表单-数据,但在客户端获取内容-类型:文本/纯文本

如何用';贪婪原则';正确地

Go 中带有回调的 MiniDumpWriteDump

是否可以使用标准库构建 Go 二进制文件?

Golang 到 wasm 编译使用 tinygo.使用 wasmtime 执行

hyperledger fabric - go:在 $PATH 中找不到可执行文件

在 Go 中公开公共 JWK

在 Golang 中,如何将接口作为泛型类型与 nil 进行比较?

NaN 是 golang 中的可比类型吗?

如何获取多个 url 参数值

如何从 Go 1.18 中的单个方法返回两种不同的具体类型?

跟踪长时间运行的任务的进度 - 正确的方法

HCL 解码:具有多个标签的块

如何使用 httputil.ReverseProxy 设置 X-Forwarded-For

如何解决在mac m1中运行gcc失败退出状态1?