ฉันกำลังย้ายไลบรารี C ไปที่ Go ฟังก์ชัน AC (พร้อม varargs) ถูกกำหนดไว้ดังนี้:
curl_easy_setopt(CURL *curl, CURLoption option, ...);
ดังนั้นฉันจึงสร้างฟังก์ชัน wrapper 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 สนับสนุนฟังก์ชัน (วิธีการ) ที่มากเกินไปหรือข้อผิดพลาดนี้หมายถึงอย่างอื่นหรือไม่?