жизни и в итоге пришёл к коду(https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=6c1395394e616260dd31be3bdac64d7a), которого не понимаю почему работает и запускается. Дочитав стало более яснее, но всё равно не понимаю почему он компилируется. Я считаю что ошибка должна быть в функции testing_ann_lt на выходной параметр, т.к. мы время жизни test1 должна закончится в функции testing_ann_lt. Объясните, почему так происходит?
test1 это ссылка на статическую строку, ее время жизни не заканчивается никогда
Понял, спасибо! А есть инструменты для разворачивания всего контекста переменной?
Там же вроде привязка лайфтайма идет от поступающих параметров, а не внутренних Я имею ввиду, что в итоге из функции выйдет лайфтайм как x, а не как test1, ибо x поступает, а test1 инициализируется только лишь внутри функции Разве не так?
да, сигнатура функции выводится как &'a str -> &'a str
почитай про lifetime elision ещё
Обсуждают сегодня