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
}

Эгер сиз функциянын ичинде маалыматтарды өзгөртүүнү кааласаңыз, түзүмгө көрсөткүчтү өткөрүңүз. Эгер өзгөртүүлөр керек болбосо, баа менен өткөрө аласыз.