FFORGE//RS
← Маршрут

rust / УРОВЕНЬ 2

Представление, которое не должно пережить источник

ОЦЕНКА30 МИН
01

ТЕОРИЯ / ВОСПРОИЗВЕДЕНИЕ

Что нужно восстановить

  • Выразить связь между lifetime входных и выходных ссылок
  • Вернуть представление коллекции без выделения памяти

Lifetime описывает отношения

Параметр lifetime не продлевает жизнь значения. Он сообщает компилятору, какое входное заимствование ограничивает выходную ссылку. Возвращать `&'static str` допустимо только для действительно статических данных; это не обходной путь для сложной аннотации.

Поведение при равенстве — часть контракта

Адаптеры итераторов могут скрывать тонкие детали, например выбор одного из равных максимумов. На собеседовании стоит явно определить выделение памяти, правило равенства и поведение на пустом входе, а не полагаться на случайную деталь реализации.

КОНТРОЛЬНАЯ ТОЧКА

Какая сигнатура может вернуть любой из входов и гарантирует, что результат не переживёт выбранное заимствование?

ISOLATED RUST 1.96
src/lib.rsРЕДАКТИРОВАНИЕ

02 / РЕАЛИЗАЦИЯ

Реализуйте контракт

Реализуйте `longest_nonempty` без выделения памяти. При равной длине в байтах верните первое значение, игнорируйте пустые строки и сохраните публичную сигнатуру.

Инициализация редактора…
ОБЛАЧНЫЙ SANDBOXсеть выключена · 256 МБ · 12 с
1 / 64 KB
ВЫВОД
Runner ждёт отправки кода.