我正在将一个C库移植到Go.AC函数(使用varargs)定义如下:
curl_easy_setopt(CURL *curl, CURLoption option, ...);
Run Code Online (Sandbox Code Playgroud)
所以我创建了包装器C函数:
curl_wrapper_easy_setopt_str(CURL *curl, CURLoption option, char* param);
curl_wrapper_easy_setopt_long(CURL *curl, CURLoption option, long param);
Run Code Online (Sandbox Code Playgroud)
如果我在Go中定义函数如下:
func (e *Easy)SetOption(option Option, param string) {
e.code = Code(C.curl_wrapper_easy_setopt_str(e.curl, C.CURLoption(option), C.CString(param)))
}
func (e *Easy)SetOption(option Option, param long) {
e.code = Code(C.curl_wrapper_easy_setopt_long(e.curl, C.CURLoption(option), C.long(param)))
}
Run Code Online (Sandbox Code Playgroud)
Go编译器抱怨:
*Easy·SetOption redeclared in this block
Run Code Online (Sandbox Code Playgroud)
Go支持函数(方法)重载也是如此,或者此错误是否意味着其他内容?