一尘不染

如何在Go语言中在运行时检查变量类型

go

我几乎没有这样声明的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{})

所以我需要能够在运行时检查 参数 类型。我该怎么做,这是个好主意吗(如果不是,在这种情况下,什么是好的做法)?


阅读 312

收藏
2020-07-02

共1个答案

一尘不染

在此处查看类型断言:

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

我只断言一个明智的类型(字符串,uint64)等,并使其尽可能宽松,最后执行到本机类型的转换。

2020-07-02