में फ़ंक्शन को पॉइंटर्स पास करके अलग-अलग मान प्राप्त करना कहें कि मैं एक फ़ंक्शन में पॉइंटर पास करना चाहता हूं और उस संरचना के मान को बदलना चाहता हूं जो कि पॉइंटर ऐसा करने से इंगित करता है। मैं सामान्य रूप से सूचक dereferencing कर ऐसा कर होगा:गो
type Test struct { Value int}
func main() {
var i Test = Test {2}
var p *Test = &i
f(p)
println(i.Value) // 4
}
func f(p *Test) {
*p = Test{4}
}
मेरा प्रश्न है, यही कारण है कि इस कोड को मूल्य
type Test struct { Value int}
func main() {
var i Test = Test {2}
var p *Test = &i
f(p)
println(i.Value) // 2
}
func f(p *Test) {
// ?
p = &Test{4}
}
परिवर्तन नहीं करता है, जबकि यह एक करता है:
type Test struct { Value int}
func main() {
var i Test = Test {2}
var p *Test = &i
f(p)
println(i.Value) // 4
}
func f(p *Test) {
p.Value = 4
}