क्या भेड़ का बच्चा अभिव्यक्ति या कुछ भी समान समर्थन करता है?क्या गो लैम्ब्डा अभिव्यक्ति या कुछ भी समान है?
मैं लैम्बडा एक्सप्रेशन (रूबी) का उपयोग करने वाली दूसरी भाषा से लाइब्रेरी पोर्ट करना चाहता हूं।
क्या भेड़ का बच्चा अभिव्यक्ति या कुछ भी समान समर्थन करता है?क्या गो लैम्ब्डा अभिव्यक्ति या कुछ भी समान है?
मैं लैम्बडा एक्सप्रेशन (रूबी) का उपयोग करने वाली दूसरी भाषा से लाइब्रेरी पोर्ट करना चाहता हूं।
Here is an example, नकल की और ध्यान से चिपकाया:
package main
import fmt "fmt"
type Stringy func() string
func foo() string{
return "Stringy function"
}
func takesAFunction(foo Stringy){
fmt.Printf("takesAFunction: %v\n", foo())
}
func returnsAFunction()Stringy{
return func()string{
fmt.Printf("Inner stringy function\n");
return "bar" // have to return a string to be stringy
}
}
func main(){
takesAFunction(foo);
var f Stringy = returnsAFunction();
f();
var baz Stringy = func()string{
return "anonymous stringy\n"
};
fmt.Printf(baz());
}
लैम्ब्डा भाव भी समारोह शाब्दिक कहा जाता है। जाओ उन्हें पूरी तरह से समर्थन करता है। http://golang.org/ref/spec#Function_literals
एक कोड की पैदल दूरी पर देखें, उदाहरण के साथ और एक वर्णन: http://golang.org/doc/codewalk/functions/
हाँ
कंप्यूटर प्रोग्रामिंग में, एक
भाषा कल्पना देखें अज्ञात फ़ंक्शन या लैम्ब्डा एब्स्ट्रक्शन (func टियन शाब्दिक) एक फ़ंक्शन परिभाषा है जो पहचानकर्ता से बंधी नहीं है, और गो अज्ञात कार्यों का समर्थन करता है, जो बंद कर सकते हैं। बेनामी फ़ंक्शन उपयोगी होते हैं जब आप इसे नाम देने के बिना फ़ंक्शन इनलाइन को परिभाषित करना चाहते हैं।
package main
import "fmt"
func intSeq() func() int {
i := 0
return func() int {
i += 1
return i
}
}
func main() {
nextInt := intSeq()
fmt.Println(nextInt())
fmt.Println(nextInt())
fmt.Println(nextInt())
newInts := intSeq()
fmt.Println(newInts())
}
फ़ंक्शन intSeq एक और फ़ंक्शन देता है, जिसे हम intSeq के शरीर में गुमनाम रूप से परिभाषित करते हैं। लौटाए गए फ़ंक्शन वेरिएबल पर बंद हो जाता है I बंद करने के लिए।
Output
$ go run closures.go
1
2
3
1
आपने ऐसा क्यों कहा? कॉपी और चिपकाया सावधानी से? :) – loyalflow
क्योंकि मैंने कोड कॉपी किया है, और इसे स्पष्ट करना चाहता था :) – perreal
कॉपी कोड की तुलना में मुझे आपके प्रश्न पर और अधिक देखना अच्छा लगेगा। सबसे पहले और सबसे महत्वपूर्ण, आप "हां"/"नहीं"/"आंशिक रूप से" आदि जोड़ सकते हैं। फिर विवरण का थोड़ा सा, आपका कोड वास्तव में क्या करता है। – Kissaki