такой момент: хочу сделать константу общую для нескольких формул, делаю по привычке как-то так:
const SOME_CONST: f64 = f64::powi(PI, 2) * 4.0;
Однако компилятор говорит что calls in constants are limited to constant functions, tuple structs and tuple variants. Как я понимаю, powi не константная функция, поэтому использовать в выражении нельзя. А как такое принято делать в Rust?
я видел какую-то конструкцию с lazy_static в коде среди embedder-ов, но пока понятия не имею что это и почему так сложно
Lazy это вычисление в рантайме при старте программе (или возможно при обращении к переменной).
возвести ручками в степень заранее и в путь?
если так делать, то формула в дальнейшем будет нечитабельной загадкой для тех кто будет видеть коэффициент 39.47. Опыт подсказывает что так делать нехорошо
Обсуждают сегодня