Sobes.tech
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
}

Եթե ցանկանում եք փոփոխել տվյալները ֆունկցիայի ներսում, փոխանցեք կառուցվածքի ցուցիչը: Եթե փոփոխություններն անհրաժեշտ չեն, կարող եք փոխանցել արժեքով։