Я написал некоторый код, который анализирует файл конфигурации.Если файл конфигурации содержит допустимое значение для поля, он устанавливается в Config
struct.Если для параметра не найдено действительного целочисленного значения, оно устанавливает значение по умолчанию (например, 90).
let config = Config {
interval: settings.get("interval").unwrap().parse().unwrap_or(90),
}
Как сделать это, чтобы сделать замыкание, чтобы оно могло печатать через error!
иустановить значение по умолчанию?
Выглядит примерно так:
let config = Config {
interval: settings.get("interval").unwrap().parse().unwrap_or({
error!("No interval found. Using default: 90");
90
});
}
Но в этом примере error!
всегда выполняется, даже если из конфигурации было прочитано допустимое значение из интервала.
Как мне сделать так, чтобы unwrap_or выполнял код только в optb
, когда parse()
не удалось?