Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
0xf90c committed Jun 15, 2024
1 parent 1e14685 commit 130ff9a
Showing 1 changed file with 2 additions and 12 deletions.
14 changes: 2 additions & 12 deletions rustbook-uz/src/ch15-04-rc.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,18 +83,8 @@ Ushbu kod quyidagini print qiladi:

`a`da `Rc<List>`ning referens soni 1 ekanligini ko'rishimiz mumkin; keyinchalik har safar biz `clone` ni chaqirganimizda, son 1ga ortib boraveradi. `c` o'z scope(doirasi)dan chiqib ketganida,referens soni 1ga kamayadi. `Rc::clone` funksiyasi yordamida referens sonini ortirish uchun chaqirganimizdek referens soni kamaytirish uchun hech qanday funksiyasini chaqirishimiz kerak bo'lmaydi, chunki `Drop` traitining implementatsiyasi `Rc<T>` qiymati o'z scope(doirasi)dan chiqqanda avtomatik ravishda referens sonini kamaytiradi.

`main` oxirida `b` va keyin `a`larning scope(doirasidan) chiqib, son/hisob 0ga tenglashib, `Rc<List>` to'liq tozalanganligini biz ushbu misolda ko'ra olmaymiz. Using `Rc<T>` allows a single value to have multiple owners, and the count ensures that the value remains valid as long as any of the owners
still exist.
`main` oxirida `b` va keyin `a`larning scope(doirasidan) chiqib, son/hisob 0ga tenglashib, `Rc<List>` to'liq tozalanganligini biz ushbu misolda ko'ra olmaymiz. `Rc<T>`ni ishlatish yordamida bitta qiymat ko'p egalarga ega bo'lishi mumkin, hamda son/hisob qiymat egalaridan biri bor bo'lgunga qadar yaroqliligini tekshirib turadi.



Via immutable references, `Rc<T>` allows you to share data between multiple
parts of your program for reading only. If `Rc<T>` allowed you to have multiple
mutable references too, you might violate one of the borrowing rules discussed
in Chapter 4: multiple mutable borrows to the same place can cause data races
and inconsistencies. But being able to mutate data is very useful! In the next
section, we’ll discuss the interior mutability pattern and the `RefCell<T>`
type that you can use in conjunction with an `Rc<T>` to work with this
immutability restriction.
O'zgarmas o'zgaruvchilar yordamida, `Rc<T>` o'qish uchun ma'lumotlarni dasturning ko'p joylari orasida ulashish imkonini beradi. Agar `Rc<T>` ko'p o'zgaruvchan referenslarga ega bo'lish imkonini bergan bo'lsa, siz 4-Bo'limda ko'rsatilganidek borrowing qoidalarini birini buzishingiz mumkin: ko'p o'zgaruchilar bir xil joyga borrow qilib data race va nomuvofiqliklarga sabab bo'lishi mumkin. Lekin ma'lumotni o'zrgatira olish foydalidir! keyingi bo'limda, biz ichki o'zgaruvchanlik shakli(pattern) va `RefCell<T>` turi bilan `Rc<T>` yordamida o'zgarmaslik cheklovi bilan ishlash ko'rib chiqamiz.

[preventing-ref-cycles]: ch15-06-reference-cycles.html#preventing-reference-cycles-turning-an-rct-into-a-weakt

0 comments on commit 130ff9a

Please sign in to comment.