फ़िदरवेट गो पर फ़िलिप वाडलर की बातचीत को देखने के बाद, मैं नवीनतम गो जेनरिक ड्राफ़्ट को लेकर वास्तव में उत्साहित था। . लेकिन अब हमारे लिए उपलब्ध नए जेनरिक मसौदे के एक संस्करण के साथ ऐसा लगता है कि फेदरवेट गो से कुछ चीजें अब संभव नहीं हैं। बात और paper वह List नामक एक फ़नकार जैसा इंटरफ़ेस पेश करता है। कागज से दृष्टिकोण काफी काम नहीं करता है।

type Any interface {}

type Function(type a Any, b Any) interface {
    Apply(x a) b
}

type Functor interface {
   Map(f Function) Functor
}

त्रुटि के साथ विफल: cannot use generic type Function(type a, b) without instantiation

और यदि आप विधि में टाइप पैरामीटर जोड़ने का प्रयास करते हैं, और आपको मिलने वाले सामान्य फ़ंक्शन का उपयोग करते हैं: methods cannot have type parameters

मुझे आश्चर्य है कि अगर किसी ने मसौदे के वर्तमान संस्करण के साथ काम करने वालों को काम करने के लिए एक दृष्टिकोण मिल गया है।

-1
Ace shinigami 18 जून 2020, 21:26

1 उत्तर

सबसे बढ़िया उत्तर

आपने सामान्य प्रकारों को आगे नहीं बढ़ाया है; आपके उदाहरण कोड में, Functor Function के साथ ऐसा व्यवहार कर रहा है जैसे कि वह सामान्य नहीं था। सही कोड (जो संकलित करता है, यहां देखें) होगा:

type Function(type a Any, b Any) interface {
    Apply(x a) b
}

type Functor(type a Any, b Any) interface {
   Map(f Function(a,b)) Functor(a,b)
}
1
Adrian 18 जून 2020, 19:40