क्या Go में फ़ंक्शन को पैरामीटर के रूप में पास किया जा सकता है?
सभी को नमस्कार! मैंने अभी-अभी Go सीखना शुरू किया है, और मेरे मन में एक सवाल है। मैं उन भाषाओं का आदी हूँ जहाँ फ़ंक्शन को दूसरे फ़ंक्शन में argument के रूप में पास किया जा सकता है (जैसे JavaScript या Python में)। लेकिन Go में, मुझे यकीन नहीं है कि यह संभव है या नहीं।
मैंने एक सरल कैलकुलेटर लिखने की कोशिश की जो ऑपरेशन (जोड़, घटाव) को पैरामीटर के रूप में ले, लेकिन मुझे सफलता नहीं मिली। यहाँ मैंने जो प्रयास किया:
```go
package main
import "fmt"
func add(a, b int) int {
return a + b
}
func subtract(a, b int) int {
return a - b
}
func calculate(a, b int, op func(int, int) int) int {
return op(a, b)
}
func main() {
result := calculate(10, 5, add)
fmt.Println(result)
}
```
कोड compile होता है और चलता है, लेकिन मुझे यकीन नहीं है कि यह सही syntax है। `func(int, int) int` लिखना क्यों ज़रूरी है? क्या यह कोई जादू है? और क्या अलग-अलग signatures वाले फ़ंक्शन पास किए जा सकते हैं? उदाहरण के लिए, एक फ़ंक्शन जो तीन arguments लेता है?
कृपया बताएं कि Go में यह कैसे काम करता है और क्या कोई खतरे हैं। मैं आभारी रहूँगा।