相关疑难解决方法(0)

可选参数?

Can Go有可选参数吗?或者我可以只定义两个具有相同名称和不同数量的参数的函数?

overloading go

411
推荐指数
11
解决办法
21万
查看次数

Go语言是否有函数/方法重载?

我正在将一个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支持函数(方法)重载也是如此,或者此错误是否意味着其他内容?

go

105
推荐指数
4
解决办法
6万
查看次数

Go中函数重载的替代方法?

是否可以像使用Golang的C#中的函数重载或可选参数一样工作?或者可能是另一种方式?

overloading go

12
推荐指数
2
解决办法
6984
查看次数

标签 统计

go ×3

overloading ×2