क्या गोलांग का उपयोग कर सी # में फंक्शन अधिभार या वैकल्पिक पैरामीटर जैसे काम करना संभव है? या शायद एक वैकल्पिक तरीका?गो में फ़ंक्शन ओवरलोडिंग के लिए वैकल्पिक?
उत्तर
न तो फ़ंक्शन ओवरलोडिंग और न ही वैकल्पिक तर्क सीधे समर्थित हैं। आप अपने स्वयं के तर्क संरचना का निर्माण कर सकते हैं। मैं इस तरह मतलब (अपरीक्षित, काम नहीं कर सकता ...) संपादित करें: now tested...
package main
import "fmt"
func main() {
args:=NewMyArgs("a","b") // filename is by default "c"
args.SetFileName("k")
ret := Compresser(args)
fmt.Println(ret)
}
func Compresser(args *MyArgs) string {
return args.dstFilePath + args.srcFilePath + args.fileName
}
// a struct with your arguments
type MyArgs struct
{
dstFilePath, srcFilePath, fileName string
}
// a "constructor" func that gives default values to args
func NewMyArgs(dstFilePath string, srcFilePath string) *MyArgs {
return &MyArgs{
dstFilePath: dstFilePath,
srcFilePath:srcFilePath,
fileName :"c"}
}
func (a *MyArgs) SetFileName(value string){
a.fileName=value;
}
गो में वैकल्पिक तर्क अब अनुमति है। इसे देखें http://changelog.ca/log/2015/01/30/golang –
@ मोहितबुरा आपका लिंक पढ़ने योग्य है लेकिन यह नहीं कहता कि वैकल्पिक तर्क अब अनुमति है। वास्तव में यह खाली इंटरफेस और विविध तर्कों –
जाओ में वैकल्पिक पैरामीटर को मुहावरेदार जवाब आवरण कार्यों है:
func do(a, b, c int) {
// ...
}
func doSimply(a, b) {
do(a, b, 42)
}
समारोह से अधिक भार जानबूझकर बाहर छोड़ दिया गया था, क्योंकि यह पढ़ने के लिए कोड हार्ड (एर) बनाता है।
* के आधार पर उनकी अनुपस्थिति के आसपास काम करने का एक अलग तरीका सुझाता है क्योंकि यह कोड को पढ़ने के लिए कठिन (एर) बनाता है। * यह पूरी तरह से व्यक्तिपरक है। मैं ऐसा नहीं सोचता, हमेशा नहीं। –
वहाँ कुछ संकेत here variadic तर्कों का उपयोग उदाहरण के लिए, कर रहे हैं:
sm1 := Sum(1, 2, 3, 4) // = 1 + 2 + 3 + 4 = 10
sm2 := Sum(1, 2) // = 1 + 2 = 3
sm3 := Sum(7, 1, -2, 0, 18) // = 7 + 1 + -2 + 0 + 18 = 24
sm4 := Sum() // = 0
func Sum(numbers ...int) int {
n := 0
for _,number := range numbers {
n += number
}
return n
}
या ...interface{}
किसी भी प्रकार के लिए:
Ul("apple", 7.2, "BANANA", 5, "cHeRy")
func Ul(things ...interface{}) {
fmt.Println("<ul>")
for _,it := range things {
fmt.Printf(" <li>%v</li>\n", it)
}
fmt.Println("</ul>")
}
- 1. PHP फ़ंक्शन ओवरलोडिंग के लिए क्या है?
- 2. नई ओवरलोडिंग और वैकल्पिक तर्क
- 3. नामस्थानों में फ़ंक्शन टेम्पलेट्स ओवरलोडिंग
- 4. ओवरलोडिंग MySQL संग्रहीत फ़ंक्शन
- 5. स्टेटिक फ़ंक्शन ओवरलोडिंग?
- 6. एफ #: ओवरलोडिंग फ़ंक्शन
- 7. आर - फ़ंक्शन ओवरलोडिंग
- 8. "$ (दस्तावेज़) .ready" के लिए वैकल्पिक "फ़ंक्शन
- 9. फोरच/लूप वैकल्पिक लैम्ब्डा फ़ंक्शन के लिए?
- 10. बहिष्कृत PHP फ़ंक्शन के लिए वैकल्पिक: eregi_replace
- 11. टेम्पलेट विशेषज्ञता वीएस फ़ंक्शन ओवरलोडिंग
- 12. सी #: वैकल्पिक पैरामीटर और नामांकित तर्कों के साथ कन्स्ट्रक्टर ओवरलोडिंग?
- 13. ओवरलोडिंग/के लिए 'के रूप में'
- 14. गो
- 15. मैनिपुलेटर्स के लिए ऑपरेटर ओवरलोडिंग
- 16. गो
- 17. सी ++ std :: सेट फ़ंक्शन ओवरलोडिंग == ऑपरेटर
- 18. गो
- 19. गो
- 20. गो
- 21. ऑपरेटर ओवरलोडिंग: सदस्य फ़ंक्शन बनाम गैर-सदस्य फ़ंक्शन?
- 22. जावास्क्रिप्ट में वैकल्पिक फ़ंक्शन पैरामीटर छोड़ना
- 23. गो
- 24. फ़ंक्शन ओवरलोडिंग का उपयोग/लाभ क्या है?
- 25. गो
- 26. गो
- 27. Esper Esper वैकल्पिक के लिए वैकल्पिक?
- 28. ओवरलोडिंग ऑपरेटर का महत्व -() मुफ्त फ़ंक्शन के रूप में और सदस्य फ़ंक्शन नहीं?
- 29. गो में किसी फ़ंक्शन का नाम कैसे प्राप्त करें?
- 30. गो के विधि सिंटैक्स के लिए तर्क
आप आप क्या चाहते हैं की एक ठोस उदाहरण है (यह भी ग # में) दे सकते हैं करने के लिए? –
'सार्वजनिक शून्य कंप्रेसर (स्ट्रिंग dstFilePath, स्ट्रिंग srcFilePath, स्ट्रिंग फ़ाइल नाम) '' सार्वजनिक शून्य कंप्रेसर (स्ट्रिंग srcFilePath, स्ट्रिंग फ़ाइल नाम) ' – Coder
संभावित डुप्लिकेट: http://stackoverflow.com/questions/2032149/optional-parameters – nemo