Эллипсисы 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 12:05 pm (UTC)В Скале, слава те господи, то же самое.
no subject
Date: 2021-12-28 05:33 pm (UTC)До них двоих — в Перле и Лиспе. Как минимум. В последнем так вообще нет способа вернуть что-то из функции, кроме как устроив, чтоб оно было значением последней формы в теле
defun’а.Другое дело, что непонятно, почему из нескольких возможных
return’ов последний должен быть особенным.(no subject)
From: