Skip to content

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 xning 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 pointerini qaytaradi.