Junior — Middle
Ինչպե՞ս է կատարվում արգումենտների փոխանցումը Go լեզվում։
sobes.tech AI
Պատասխան AI-ից
Go լեզվում, ֆունկցիաներում արգումենտները փոխանցվում են արժեքով: Սա նշանակում է, որ ֆունկցիան կանչելիս փոխանցվում են արգումենտների արժեքների պատճենները, և ֆունկցիայի ներսում փոփոխությունները չեն ազդում սկզբնական փոփոխականների վրա:
Եթե անհրաժեշտ է փոփոխել կանչող կոդից փոփոխականինը, փոխանցվում է այդ փոփոխականի ցուցիչը: Այդ դեպքում, ֆունկցիան ստանում է հասցեն և կարող է փոփոխել այդ հասցեում գտնվող արժեքը:
Արժեքով և ցուցիչով փոխանցման օրինակ:
package main
import "fmt"
func incrementByValue(x int) {
x = x + 1
}
func incrementByPointer(x *int) {
*x = *x + 1
}
func main() {
a := 5
incrementByValue(a)
fmt.Println(a) // Տպում է 5, քանի որ փոխանցվել է արժեքով
incrementByPointer(&a)
fmt.Println(a) // Տպում է 6, քանի որ փոխանցվել է ցուցիչով
}