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
}
Эгер сиз функциянын ичинде маалыматтарды өзгөртүүнү кааласаңыз, түзүмгө көрсөткүчтү өткөрүңүз. Эгер өзгөртүүлөр керек болбосо, баа менен өткөрө аласыз.