Junior — Middle
Ինչպե՞ս է Golang լեզվում իրականացվում տարրերի փոխանցումը ֆունկցիաների և կառուցվածքների միջև։
sobes.tech AI
Պատասխան AI-ից
Go լեզվում, տարրերի փոխանցումը ֆունկցիաների և կառուցվածքների միջև կարող է կատարվել երկու հիմնական եղանակով՝ արժեքով և ցուցիչով:
-
Արժեքով՝ կառուցվածքը կամ փոփոխականը ինքնին պատճենվում է, ֆունկցիայի ներսում փոփոխությունները չեն ազդում սկզբնաղբյուրի վրա:
-
Ցուցիչով՝ փոխանցվում է կառուցվածքի կամ փոփոխականի հասցեն, ինչը թույլ է տալիս ֆունկցիային փոփոխել սկզբնաղբյուր տվյալները:
Օրինակ՝
package main
import "fmt"
type Person struct {
Name string
Age int
}
func updateByValue(p Person) {
p.Age = 30 // միայն պատճենը կփոխվի
}
func updateByPointer(p *Person) {
p.Age = 30 // սկզբնաղբյուրն է փոխվում
}
func main() {
person := Person{Name: "Ivan", Age: 25}
updateByValue(person)
fmt.Println(person.Age) // 25
updateByPointer(&person)
fmt.Println(person.Age) // 30
}
Եթե ցանկանում եք փոփոխել տվյալները ֆունկցիայի ներսում, փոխանցեք կառուցվածքի ցուցիչը: Եթե փոփոխություններն անհրաժեշտ չեն, կարող եք փոխանցել արժեքով։