Как я могу сделать часть строки const
условной над некоторым флагом?Как форматировать строку const
#[cfg(target_os = "macos")]
const OS: &'static str = "OSx";
#[cfg(target_os = "windows")]
const OS: &'static str = "Windows";
const SOME_STRING: &'static str = format!("this os is {}", OS);
Этот код не компилируется потому что format
макрокоманда возвращает String
. Я хотел бы иметь возможность делать это форматирование без какого-либо выделения. Можно ли обойтись без того, чтобы вся строка была условной?
Является ли 'const fn' также доступным для таких вещей, как' const sqrt_of_two: f64 = (2.0) .sqrt() '? – LinearZoetrope
Вы * можете * сделать это, злоупотребляя чертами макросов ... но вряд ли это того стоит. * Действительно * маловероятно. –
@Jsor: Может быть. Неясно, в какой степени будет достигнута оценка времени компиляции (CTFE) Rust. Лично я нахожусь на «все, что является самодостаточным», но я не называю снимки :) –