Size: a a a

RU Rust GameDev — русскоговорящее сообщество

2020 January 30

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
вот еще с чем столкнулся
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
pub fn update(&mut self){
   for blob in &self.blobs {
     
   }
 }
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
тут ошибок нет но я не могу понять
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
self это ведь и так ссылка
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
а в цикле что выходит ссылка на ссылку?
источник

A

Anton 📦 ᯌ in RU Rust GameDev — русскоговорящее сообщество
SET001
self это ведь и так ссылка
self это значение
источник

A

Anton 📦 ᯌ in RU Rust GameDev — русскоговорящее сообщество
&self - ссылка
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
если просто for blob in self.blobs {   } то будет ошибка кстати
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
Anton 📦 ᯌ
self это значение
там ведь сначала &mut self в параметрах апдейта, тоетсь это ссылка
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
SET001
а в цикле что выходит ссылка на ссылку?
Тут происходит создание итератора. Внутри будет только ссылка на blobs.
источник

AL

Andrey @ozkriff Lesnikov in RU Rust GameDev — русскоговорящее сообщество
SET001
Уникальность мут ссылок - фундаментальное правило ржавчины мне предстоит еще сильно поразмыслить над этим, пока это видится как 1. голованя боль 2. нечто что будет диктовать дизайн моего приложения/апи
поздравляю, ты перешел на первую ступень борьбы с бороучекером! :)
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
Lain-dono
Тут происходит создание итератора. Внутри будет только ссылка на blobs.
но ведь я теперь не могу сделать так
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
pub fn update(&mut self){
   for blob in &self.blobs {
     blob.radius -= 1.0;
   }
 }
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
мне придется объявить метод blob.updateRadius и опять таки выходит что раст влияет на дизайн моего апи, хороше ли это
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
SET001
pub fn update(&mut self){
   for blob in &self.blobs {
     blob.radius -= 1.0;
   }
 }
Тут итератор без мутабельности. Если нужно мутабельность, то &mut self.blobs.
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
Andrey @ozkriff Lesnikov
поздравляю, ты перешел на первую ступень борьбы с бороучекером! :)
долгая ли она будет? кровавая ли? дойду ли я до послеедней ступени? существует ли последняя ступень?
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
Lain-dono
Тут итератор без мутабельности. Если нужно мутабельность, то &mut self.blobs.
упс, внатуре, спасибо
источник

AL

Andrey @ozkriff Lesnikov in RU Rust GameDev — русскоговорящее сообщество
SET001
долгая ли она будет? кровавая ли? дойду ли я до послеедней ступени? существует ли последняя ступень?
пару недель-месяцев обычно. потом интернализируешь правила языка и в большинстве ситуаций сразу пишешь идиоматично. про последнюю ступень я сам без понятия, хе)
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
SET001
упс, внатуре, спасибо
Кстати это работает по той причине, что для слайсов реализуется IntoIterator.
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
источник