Почему «заявления» нужны в Java, когда у нас есть выражения? - PullRequest
0 голосов
/ 01 апреля 2019

Я недавно читал о выражениях и утверждениях, и я не мог понять необходимость утверждений. Это в основном набор выражений.

Я изучил и прочитал некоторые сообщения в блоге и другие вещи здесь , здесь и здесь , но я не совсем понимаю, зачем нам нужны заявления .

Так что, если я сделаю что-то вроде:

i++;

это выражение-выражение

int i = 0;
int i = 7 + 5;

являются заявлениями и

int i = 0

является выражением

Таким образом, если операторы являются множественными выражениями, а выражения являются основным представлением кода, который может быть оценен компилятором, зачем нам операторы?

1 Ответ

2 голосов
/ 01 апреля 2019

Алгол 68 - это язык выражений такого высокого уровня:

IF a < b THEN head ELSE current.next FI := c

Это будет условно присваивать различным переменным, а результирующее выражение будет, скажем, c.

Операторы - это особенность процедурных языков, они дают эффект, а не сохраняют, приводя к значению.

Java выбрала (смешанную) процедурную парадигму, следуя в этом отношении (и касаясь синтаксиса) C ++.

С лямбдами в некоторых местах Java больше похожа на язык выражений, хотя это никогда не будет чистый EL, имеющий много специфических исключительных правил синтаксиса, и не все могут быть использованы в качестве выражения. Однако С ++ все еще хуже ИМХО.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...