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 деп чыгарат, көрсөткүч аркылуу өткөрүлгөн
}