गो के डिफर कीवर्ड की कार्यक्षमता को समझना
गो के साथ काम करते समय, डिफर कीवर्ड के व्यवहार को समझना महत्वपूर्ण है। यह कीवर्ड डेवलपर्स को किसी फ़ंक्शन के निष्पादन को तब तक स्थगित करने की अनुमति देता है जब तक कि आसपास का फ़ंक्शन वापस नहीं आ जाता। हालाँकि, यह ध्यान रखना महत्वपूर्ण है कि फ़ंक्शन के मान और मापदंडों का मूल्यांकन तब किया जाता है जब डिफर स्टेटमेंट निष्पादित होता है।
उदाहरण: डिफर ऑर्डर का मूल्यांकन
इसे स्पष्ट करने के लिए, निम्नलिखित पर विचार करें कोड:
package main
import "fmt"
func main() {
defer having()(fun("with Go."))
fmt.Print("some ") // evaluation order: 3
}
func having() func(string) {
fmt.Print("Go ") // evaluation order: 1
return funWithGo
}
func fun(msg string) string {
fmt.Print("have ") // evaluation order: 2
return msg
}
func funWithGo(msg string) {
fmt.Println("fun", msg) // evaluation order: 4
}
इस उदाहरण में, कोड को निम्नलिखित क्रम में निष्पादित किया जाता है:
डिफ़र सिद्धांत को लागू करना
मूल क्वेरी में उल्लिखित समस्या को हल करने के लिए, हम डिफ़र कीवर्ड का उपयोग टिकट की कीमत के आधार पर सही ढंग से प्रिंट करने के लिए कर सकते हैं प्रविष्ट आयु पर. नीचे कोड का एक संशोधित संस्करण है:
package main
import "fmt"
func main() {
age := 999
defer fmt.Println("Your age is:", getAge(&age)) // defer printing the age
defer fmt.Println("Your ticket price is:", getTicketPrice(age)) // defer printing the ticket price
}
func getTicketPrice(age int) float64 {
// Calculate ticket price based on age
// logic can be customized here
fmt.Println("...order is 2...")
switch {
case age 13 && age इस संशोधित कोड में, हम यह सुनिश्चित करने के लिए defer कीवर्ड का सही ढंग से लाभ उठाते हैं कि प्रारंभिक समस्या को हल करते हुए, संबंधित कार्यों को निष्पादित करने के बाद उम्र और टिकट की कीमत मुद्रित की जाती है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3