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

Добрый вечер. Кто сможет заставить этот код работать?) https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=6f924fa4a61e716d05fe5a2c3b810b0f А, прикол понят. Если

кому интересно, то так как в rust-е может быть только одна mutable ссылка, то он просит lifetime с трейта Slice

12 ответов

17 просмотров

Я не понимаю( Как то, что inner это мут ссылка добавляет ограничения на результат get

примитивушка- Автор вопроса
Cryme Ariven
Я не понимаю( Как то, что inner это мут ссылка до...

Может существовать только одна mut ссылка. rust требует, чтобы self (SliceMut), жил столько же, сколько живёт inner. С SliceRef такого не происходит, потому что может быть несколько imm ссылок на один и тот же объект.

https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=a52503f37e7852ee273e0476550a9a0c

примитивушка- Автор вопроса
Αλεχ Zhukovsky
https://play.rust-lang.org/?version=stable&mode=de...

Именно. Здесь self живёт столько, сколько нужно

А, ааа, лол, здесь всё наоборот. Предполагается, будто с &mut на родительский контейнер будут получены долгоживущие ссылки на содержимое, то есть, 'a: 'l, что абсурд. С обычными ссылками такое возможно, поскольку там дадут максимум inner mutability делать, и не выйдет намеренно в таком случае всё испортить, если сами контейнеры надёжные (Cell не дерефается, например).

а как ты гарантируешь, что self не удалится раньше чем результат?

Пух
а как ты гарантируешь, что self не удалится раньше...

self это &mut X получили мы & на поле X пускай &mut X удаляется, как это на нас влияет?

Cryme Ariven
self это &mut X получили мы & на поле X пускай &mu...

а потом кто-то по другой &mut X это поле меняет

Короче, смотри. Максимум вот такое осуществимо – сплит и поехали. Нельзя взять и гетнуть мутслайс по мут ссылке навсегда, не связав лайфтаймы. Тот пример с w/v, который я скидывал, показателен, почему нельзя.

Traveller Kolsky
Короче, смотри. Максимум вот такое осуществимо – с...

[el, inner @ ..] => (Some(el), Self { inner }), get же всегда первый элемент возвращает

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

Обсуждают сегодня

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Открыл свой двухкилобайтный экзешник в x32dbg, а тут какая-то хрень. Смущает кнопка "выполнить до пользовательского кода", а что ещё может быть в файле помимо него ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
11
Мне были интересны дишные хаки и я нашёл любопытный способ на форуме через __traits, что-то вроде int delegate(int) fac = (int n) => n == 0 ? 1 : n * __traits(parent, {})(n - ...
Constantin F.
1
Вопрос тем кто смотрит видео и слушает подкасты - как вы потом ищете нужную вам информацию? Вот статью я прочитал, потом могу искать нужную мне часть банальным поиском. Пропус...
Aleksandr Druzhinin
4
Всем привет, подскажите/посоветуйте пожалуйста. Фаердак компоненты, имею одно место где бизнес хочет видеть при открытии формы список всех клиентов, это порядка 30к. Мои дово...
Sasha Sch
14
Ребят, если кто в курсе - скажите, а в загранке такое же засилье маркетплейсов? или там простые сермяжные интернет-магазины живут попроще?
Андрей [aharito] Харитонов
14
Коллеги, доброе утро. Запустил на удаленном хосте приложение (ручками зашел туда по ssh и запустил, не командой удаленно). Создал потом ssh-туннель, и с моей машины приложение...
Δημήτηρ
9
Карта сайта