Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsSpLfSc 32 of 288 menu
◀ ▶

Срок на всю программу в Rust

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

Литерал уже несет эту пометку без лишней записи:

fn main() { let note = "fixed"; println!("{}", note); }

Тип note здесь - общая ссылка со сроком на всю программу. Ее можно передавать туда, где ждут именно такой долгий указатель, например в поле структуры без привязки к локальной строке.

Тот же срок можно записать явно у переменной:

fn main() { let s: &'static str = "hi"; println!("{}", s); }

Дана структура:

struct Tag { label: &'static str, } let tag = Tag { label: "ok" };

Выведите поле label и объясните, почему сюда подходит литерал, а не ссылка на String из функции.

Даны переменные:

let a = "one"; let b: &'static str = "two";

Выведите обе строки и скажите, чем запись b отличается от a в типе при одинаковом тексте в кавычках.

Дан фрагмент:

fn title() -> &'static str { "book" }

Вызовите функцию из main, сохраните ссылку и выведите текст. Скажите, как долго живет возвращаемое значение.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить