Эллипсисы Rust'а
Dec. 28th, 2021 12:23 pmНекоторые вещи настолько глубоко фундаментально правильные, что после того, как один раз попробуешь, дальше становится не понятно, почему у всех остальных не так.
Например, в Rust последнее выражение (без ';') - это возвращемое значение функции.
fn foo() -> i32{
2
}
возвращает 2.
Почему не так же в питоне? Нет ни одной причины, почему последнее значение не может быть возвращемым. Наоборот, модель питона "нет return - возвращем None" звучит очень странно и произвольно.
Ленивое "не печатать return в конце функции" очень трудно изжить, потому что оно очевидно, удобно и кратко.
Например, в Rust последнее выражение (без ';') - это возвращемое значение функции.
fn foo() -> i32{
2
}
возвращает 2.
Почему не так же в питоне? Нет ни одной причины, почему последнее значение не может быть возвращемым. Наоборот, модель питона "нет return - возвращем None" звучит очень странно и произвольно.
Ленивое "не печатать return в конце функции" очень трудно изжить, потому что оно очевидно, удобно и кратко.
no subject
Date: 2021-12-28 07:47 pm (UTC)Потому что удобно. return в середине функции нарушает нормальное выполнение (так же как break/continue), а значение в конце появляется там "обычным" образом. Т.е. чуть-чуть пописав на расте я постоянно так же делаю (пытаюсь делать) в питоне, просто потому что оно выразительно и кратко.