не выделялось место на стеке каждый раз при вызове этого кода, или же компилятор Rust умный и сам это делает? Впринципе этот вопрос про любую структуру используемую вот так через & какой нибудь &MyStruct::default()?
Или подскажите, пожалуйста, где об этом почитать 😊
ЕМНИП, да, const propagation сделает эту штуковину константой
константы, которые const, кстати, с точки зрения языка при каждом использовании каждый раз как новое значение создаются. а так, оптимизации llvm должны это все схлопнуть в итоге (но лучше перепроверить для своего конкретного случая, раз сильно важно)
&[] - это уже слайс, он разве не будет занимать 24 байта на стеке, как указатель?
Мой вопрос заключается в том, что на стеке выделяется место каждый раз при вызове такой конструкции или только один раз 😉
Спасибо большое, полезу почитаю про const propagation
> каждый раз как новое значение создаются. Первый раз слышу… А какой смысл тогда в константах, если твое утверждение правильное?
я не уверен, что вопрос понимаю) тебе нужна константа - берешь const, нужна именно глобальная переменная - берешь static
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=bfa7900d0595f58360b3c97894f5b7fe Можно заметить, что у него 'static-лайтайм
так это ты запросил static
Тоже еще раз спасибо, почитаю 😊
Наверняка никто не знает. Золотое правило :если тебе это критично напиши руками и не надейся на компилятор
Ну мне уже ответили и помогли, но спасибо за совет, обычно так и делаю, но иногда лучше спросить и узнать наверняка, чем думать и гадать 😊
Обсуждают сегодня