Прежде всего, я хотел бы отметить, что мои теоретические знания анатомии языков программирования не так глубоки, как следовало бы, и я заранее извиняюсь.
Это также может быть глуповопрос, я прошу прощения за это, но я некоторое время задавался вопросом, почему нет оператора return if
или, по крайней мере, синтаксического сахара для него в (по крайней мере, тех, с которыми я знаком) языках программирования, особенно в таких языках, как Pythonили Lua, которые относительно высокого уровня и часто допускают альтернативное написание с синтаксическим сахаром.
Возьмите следующий код, например:
if(x > y) {
return x;
}
Конечно, вы точно знаете, что происходит,if x > y is true x is returned
.Однако теперь можно утверждать следующее:
- В зависимости от языка программирования для простого утверждения требуется несколько строк. Конечно, вы могли бы написать это встроенным, как
if (x > y) { return x }
- Это не "звучит" так здорово:
if x > y, x gets returned
Просто чтобыПроясните, я не хочу сказать, что «традиционный» путь плох, я просто спрашиваю из интереса.
Если бы вы использовали выражение вроде «return if»Вышеприведенное утверждение может выглядеть так:
return x if (x > y);
Это однострочный и хорошо читается x gets returned if x > y
Теперь я задал себе следующие вопросы:
- Это просто проектное решение?
- Синтаксис
return if
вызывает ненужные сложности для синтаксического анализатора / компилятора? - Если это ни первое, ни второе,тогда что это?Стечение обстоятельств?Я, конечно, не буду первым думать об этом за все десятилетия программирования.
Edit :
Поскольку мой пример явно вводил в заблуждение, я имею в виду следующее.такое же поведение с другим синтаксисом.
Так что return x if(x > y)
вообще не возвращается, если x не больше y.