Go로 C 라이브러리를 이식하고 있습니다. AC 함수 (varargs 포함)는 다음과 같이 정의됩니다.
curl_easy_setopt(CURL *curl, CURLoption option, ...);
그래서 래퍼 C 함수를 만들었습니다.
curl_wrapper_easy_setopt_str(CURL *curl, CURLoption option, char* param);
curl_wrapper_easy_setopt_long(CURL *curl, CURLoption option, long param);
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)))
}
Go 컴파일러는 다음과 같이 불평합니다.
*Easy·SetOption redeclared in this block
그렇다면 Go는 함수 (메소드) 오버로딩을 지원합니까, 아니면이 오류가 다른 것을 의미합니까?