Здравствуйте, vsb, Вы писали:
vsb>Во-вторых если функция сейчас не бросает ошибок, а завтра начинает бросать, мне надо менять её тип, потом проходить по всем местам её использования и как минимум добавлять туда этот самый вопросик. Потенциально надо рекурсивно менять тип этой вызывающий функции и так далее.
Это как раз преимущество. Внезапно прилетающее исключение не начнёт ломать код, который к этому не был готов. Мы сразу на этапе компиляции увидим места, которые нужно поправить.
vsb>В-четвёртых можно пример, как будет выглядеть код аналогичный
vsb>vsb>List<Integer> parseStrings(List<String> strings) {
vsb> return strings.stream().map(s -> Integer.parseInt(s)).toList();
vsb>}
vsb>
vsb>есть у меня подозрение, что вопросиком тут не отделаешься. Конечно на выходе нужен именно результат над списком чисел, а не список результатов над числами.
Тут даже вопросиков не нужно будет:
fn parse_strings(strings: Vec<String>) -> Result<Vec<u32>, ParseIntError> {
strings.into_iter().map(|s| s.parse()).collect()
}