क्या Go में map वैल्यू या रेफरेंस से पास होता है? फंक्शन के अंदर बदलाव बाहर क्यों दिखते हैं?
सभी को नमस्ते! मैंने अभी-अभी Go सीखना शुरू किया है और मैं समझ नहीं पा रहा हूँ कि map फंक्शन में कैसे पास होते हैं।
मैंने यह कोड लिखा:
```go
package main
import "fmt"
func modifyMap(m map[string]int) {
m["key"] = 42
fmt.Println("फंक्शन के अंदर:", m)
}
func main() {
myMap := map[string]int{"key": 0}
fmt.Println("कॉल करने से पहले:", myMap)
modifyMap(myMap)
fmt.Println("कॉल करने के बाद:", myMap)
}
```
आउटपुट:
```
कॉल करने से पहले: map[key:0]
फंक्शन के अंदर: map[key:42]
कॉल करने के बाद: map[key:42]
```
मैं उम्मीद कर रहा था कि map वैल्यू से पास होगी (जैसे int या string), और फंक्शन के अंदर बदलाव मूल map को प्रभावित नहीं करेंगे। लेकिन वे प्रभावित कर रहे हैं!
वहीं, अगर मैं array के साथ ऐसा ही करूँ:
```go
func modifyArray(arr [3]int) {
arr[0]