GoDasturchi
Dereferencing

Dereferencing

Dereferentsiya

Agar &v — manzil qog'ozi bo'lsa, *p — o'sha manzilga borib, u yerga yozilganini o'qish.

example.go
timeout := 30
p := &timeout               // p timeout manzilini ushlab turadi
fmt.Println(*p)              // 30
fmt.Println(p == &timeout)   // true: bir xil manzil

Pointer oldidagi *dereferentsiya operatori: manzilga boring, u yerdagini o'qing. U & qilgan ishni bekor qiladi, sizni manzildan qiymatga qaytaradi.

Bu borib-kelish turlarga ham ta'sir qiladi. p va *p bir xil narsa emas:

IFODAQANDAY O'QILADITUR
timeoutqiymatint
&timeouttimeout'ning manzili*int
po'sha manzilning nusxasi*int
*po'sha manzildagi qiymatint

p — int'ga pointer. *p — int. Ular bir qadam narida yashaydi, va * ular orasidagi qadamdir.

>_ Exercise

Qayta urinish sikli har bir muvaffaqiyatsiz urinishdan keyin kechikishni ikki baravar oshiradi. Siz joriy kechikishga pointer p ni ushlab turibsiz. U orqali o'qing, qiymatni ikki baravar oshiring va uni chop eting.

  • Sizda faqat p bor, delayning o'zi emas
  • Pointer orqali *p bilan o'qing
  • Qiymatni ikki baravar oshirib, chop eting

Kutilgan natija:

example.go
400

Stuck? Reveal a hint to help you.

Hints (0/3)

Key Takeaway

Key Takeaway:

Pointer oldiga * qo'yish manzilga boradi va u yerda saqlangan qiymatni qaytaradi.

NEXT UP

Mutate Through a Pointer

OUTPUT

$ go run main.go
Kodingizni ishga tushiring

Dereferencing

Dereferentsiya

Agar &v — manzil qog'ozi bo'lsa, *p — o'sha manzilga borib, u yerga yozilganini o'qish.

example.go
timeout := 30
p := &timeout               // p timeout manzilini ushlab turadi
fmt.Println(*p)              // 30
fmt.Println(p == &timeout)   // true: bir xil manzil

Pointer oldidagi *dereferentsiya operatori: manzilga boring, u yerdagini o'qing. U & qilgan ishni bekor qiladi, sizni manzildan qiymatga qaytaradi.

Bu borib-kelish turlarga ham ta'sir qiladi. p va *p bir xil narsa emas:

IFODAQANDAY O'QILADITUR
timeoutqiymatint
&timeouttimeout'ning manzili*int
po'sha manzilning nusxasi*int
*po'sha manzildagi qiymatint

p — int'ga pointer. *p — int. Ular bir qadam narida yashaydi, va * ular orasidagi qadamdir.

>_ Exercise

Qayta urinish sikli har bir muvaffaqiyatsiz urinishdan keyin kechikishni ikki baravar oshiradi. Siz joriy kechikishga pointer p ni ushlab turibsiz. U orqali o'qing, qiymatni ikki baravar oshiring va uni chop eting.

  • Sizda faqat p bor, delayning o'zi emas
  • Pointer orqali *p bilan o'qing
  • Qiymatni ikki baravar oshirib, chop eting

Kutilgan natija:

example.go
400

Stuck? Reveal a hint to help you.

Hints (0/3)

Key Takeaway

Key Takeaway:

Pointer oldiga * qo'yish manzilga boradi va u yerda saqlangan qiymatni qaytaradi.

NEXT UP

Mutate Through a Pointer