Ko'rsatkichlar(pointers)
pointer
bu o'zgaruvchining xotira manzilini saqlovchi o'zgaruvchidir. Pointerlar yordamida dastur samaradorligini
oshirish va xotirani tejash mumkin.
Pointer yaratish va ishlatish
Go tilida pointer
yaratish uchun *
(yulduzcha) va &
(ampersand) operatorlari ishlatiladi:
&
operatori — o'zgaruvchining xotira manzilini olish uchun ishlatiladi.*
operatori — pointer orqali xotirada saqlangan qiymatni olish yoki o'zgartirish uchun ishlatiladi.
Misol
package main
import "fmt"
func main() {
x := 10
p := &x // x ning pointerini p ga saqlaymiz
fmt.Println("x ning qiymati:", x) // 10
fmt.Println("x ning manzili:", p) // 0xc000014098 (manzil har xil bo'lishi mumkin)
fmt.Println("p orqali x qiymati:", *p) // 10
*p = 20 // Pointer orqali x ning qiymatini o'zgartiramiz
fmt.Println("Yangi x ning qiymati:", x) // 20
}
Pointer bilan qiymatni o'zgartirish
Pointerni ishlatish orqali o'zgaruvchining manziliga kirib, uning qiymatini o'zgartirish mumkin.
package main
import "fmt"
func main() {
x := 10
p := &x // x ning manzilini olish
*p = 20 // Pointer orqali x ni o'zgartiramiz
fmt.Println("x ning yangi qiymati:", x) // 20
}
Info
*p = 20
deganda p
orqali x
ning qiymatini o'zgartiramiz.
new
bilan pointer yaratish
Go tilida new
funksiyasi yordamida yangi pointer
yaratish mumkin.
package main
import "fmt"
func main() {
p := new(int) // int uchun yangi pointer yaratamiz
fmt.Println("Pointer manzili:", p) // Masalan: 0xc000010230
fmt.Println("Pointer qiymati:", *p) // 0 (standart qiymat)
*p = 42
fmt.Println("Yangi qiymat:", *p) // 42
}
Info
new(int)
yangi int
o'zgaruvchisi uchun joy ajratadi va uning pointer
ini qaytaradi.