209 похожих чатов

В рамках скоупа мономорфно без проблем ты статически считаешь ссылки.

Что делать с вытекшими за скоуп ссылками?
В Расте каждый выход аллиасится( инвариант с одной мутирующей ссылкой)

Ссылка одна - ты владелец
Ссылки больше одной — неопределенное поведение программы
Поэтому ссылки рождаются ручными костылями например как:

fn main() {
struct A ( u32, u32 );
let mut a = A (1,1);
let A (a, b) = &mut a;
}

И это как slice.split который без unsafe не реализуется

Используешь аннотации везде получается(как на примере выше) —-> нарушение базовых инвариантов(ссылка на самом деле не ссылка)

И не передается куда-то из скоупа, и в рамках лайфтацмов нет подобных отношений

Маня-чекер в Расте не может взять инфу о всех ссылках как это делают нормальные анализаторы(знает откуда создалась ссылка, и какую ссылку указывают на один и тот же объект)

2 ответов

35 просмотров
𓂭𓃇- Автор вопроса

Здесь по поводу ссылок

𓂭𓃇
Здесь по поводу ссылок

бтф, во что нашел https://programming-language-benchmarks.vercel.app/

Похожие вопросы

Карта сайта