Есть время жизни 'a оно задано для ссылок, присланных в метод. У метода есть возвращаемое значение с тем же временем жизни. Все норм, ссылки на входе живут дольше метода и отдаются на выход. Если же создать в методе значение и вернуть ссылку на него (а там время жизни 'a у возвращаемого значения, которое из ссылок на входе) то компилер не допрет, что не надо сносить ссылку в конце работы метода, а снести ее когда 'a отживет, и выдаст компилер ошибку. Кажется компилер мог бы быть и поумнее.

@3draven то есть, если я внутри метода зачитал файлик размером в гиг, то этот гиг должен жить вечно (пока имя файла, переданное в метод, не отомрет)?

Интересный способ добиться OOM в последовательном коде, я думал, го придумали, чтобы суметь сделать это в параллельном коде, но так даже лучше.

Передача ссылок в методы — одна из причин, почему на расте ничего сложного толком не написать.

@mudasobwa наоборот, он это запрещает, а я бы хотел отстрелить себе ноги самостоятельно :)

@mudasobwa я ведь в сигнатуре метода явно определяю время жизни, и для случая переданных снаружи ссылок возвращаемое значение может жить сколько они живут, а для случая созданного внутри значения ссылка это же внешнее время жить не может. Хотя с чего вдруг инструмент управления есть, а второй случай запрещен.

Sign in to participate in the conversation
MustUdon

I like Twitter, but, Mastodon it is so excited! Feel free to register it is server just for fun! Usefull links https://instances.social https://www.reddit.com/r/Mastodon/comments/yugh2o/some_useful_mastodon_lists/?utm_source=share&utm_medium=web2x&context=3