Size: a a a

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

2020 October 31

SS

Slava Sokolovsky in Rust — русскоговорящее сообществo
polunin.ai
Но вообще возвращать Option<Result<>> нелогично и неинтуитивно.
Почему? В итераторе, например, по отправленным пакетом. None здесь показывает, что итератор закончился, а Err - успешность операции
источник

p

polunin.ai in Rust — русскоговорящее сообществo
мне нужна возможность установки зависимости лайфтайма или от ссылки на self или от ссылки внутри структуры. Это возможно7
источник

p

polunin.ai in Rust — русскоговорящее сообществo
то есть что-то типа
trait Foo<'a> { fn some(&self); }
struct A;
struct B<'a>(&'a A);
impl<'a> Foo<'a> for A { fn some(&'a self) {} }
impl<'a> Foo<'a> for B<'a> { fn some(self) {} }

при это чтобы я все еще мог писать
impl<'a, T> Foo<'a> for T { ... }
источник

k

kitlhut0r in Rust — русскоговорящее сообществo
Привет всем, хочется спросить, я правильно понимаю, что когда ты делаешь так:
let mut a = 5;
a = 6;
То a просто начинает указывать на другое значение в памяти, а первое остаётся.
А когда так:
let a = &mut 5;
*a = 6;
То доп места для ещё одного инта не выделяется и мы меняем то же самое значение в памяти?
источник

p

polunin.ai in Rust — русскоговорящее сообществo
kitlhut0r
Привет всем, хочется спросить, я правильно понимаю, что когда ты делаешь так:
let mut a = 5;
a = 6;
То a просто начинает указывать на другое значение в памяти, а первое остаётся.
А когда так:
let a = &mut 5;
*a = 6;
То доп места для ещё одного инта не выделяется и мы меняем то же самое значение в памяти?
вторая запись не пройдет борроу чек.
источник

p

polunin.ai in Rust — русскоговорящее сообществo
kitlhut0r
Привет всем, хочется спросить, я правильно понимаю, что когда ты делаешь так:
let mut a = 5;
a = 6;
То a просто начинает указывать на другое значение в памяти, а первое остаётся.
А когда так:
let a = &mut 5;
*a = 6;
То доп места для ещё одного инта не выделяется и мы меняем то же самое значение в памяти?
нет, a указывает всегда на одну и ту же область памяти.
источник

k

kitlhut0r in Rust — русскоговорящее сообществo
polunin.ai
вторая запись не пройдет борроу чек.
Да вроде это нормально компилится
источник

k

kitlhut0r in Rust — русскоговорящее сообществo
polunin.ai
нет, a указывает всегда на одну и ту же область памяти.
А в чем смысл использовать &mut тогда?
источник

p

polunin.ai in Rust — русскоговорящее сообществo
kitlhut0r
А в чем смысл использовать &mut тогда?
чтобы передавать в другие функции.
источник

p

polunin.ai in Rust — русскоговорящее сообществo
для передачи в другие функции объектов которые требуется мутировать есть два варианта:
1. Fn(T) -> T
2. Fn(&mut T)
источник

p

polunin.ai in Rust — русскоговорящее сообществo
при этом первый:
1. Возможен не всегда.
2. Мувает туда сюда значение.
источник

k

kitlhut0r in Rust — русскоговорящее сообществo
Ок, я понял, спасибо
источник

p

polunin.ai in Rust — русскоговорящее сообществo
kitlhut0r
Привет всем, хочется спросить, я правильно понимаю, что когда ты делаешь так:
let mut a = 5;
a = 6;
То a просто начинает указывать на другое значение в памяти, а первое остаётся.
А когда так:
let a = &mut 5;
*a = 6;
То доп места для ещё одного инта не выделяется и мы меняем то же самое значение в памяти?
для этого нужны гаты :(
источник

p

polunin.ai in Rust — русскоговорящее сообществo
есть какой-то линтер по типу must_use только для функции? У меня есть конструктор Foo::new() и мне нужно чтобы пользователь обязательно вызвал функцию foo.bar() после создания Foo::new(), иначе нарушатся внутренние гарантии.
источник

D

Denis in Rust — русскоговорящее сообществo
ну пусть Foo::new() промежуточный объект возвращает, зачем огород городить?
источник

MP

Mag Pie in Rust — русскоговорящее сообществo
Denis
ну пусть Foo::new() промежуточный объект возвращает, зачем огород городить?
+++
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Denis
ну пусть Foo::new() промежуточный объект возвращает, зачем огород городить?
у меня самоссылающая структура, поэтому пересоздавать ее нельзя
источник

D

Denis in Rust — русскоговорящее сообществo
это не аргумент
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Похоже на Pin
источник

p

polunin.ai in Rust — русскоговорящее сообществo
я могу запинить да, но чет не очень хочется
источник