क्या 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]