Язык программирования Euphoria | страница 30
Заметьте, что символ равенства '=' используется и для записи команды, и как оператор при проверке равенства в выражениях. Но здесь никогда не возникает путаница, так как присваивание в Euphoria является только командой, и оно не может быть использовано в составе выражений (как это бывает в других языках).
Euphoria имеет также некоторые дополнительные формы команды присваивания.
Чтобы сократить код и сделать его чуть-чуть красивее, вы можете объединить символ присваивания с одним из операторов:
+ - / * &
Например, вместо того, чтобы писать:
mylongvarname = mylongvarname + 1
вы можете записать:
mylongvarname += 1
вместо записи:
galaxy[q_row][q_col][q_size] = galaxy[q_row][q_col][q_size] * 10
будет работать:
galaxy[q_row][q_col][q_size] *= 10
а вместо:
accounts[start..finish] = accounts[start..finish] / 10
просто:
accounts[start..finish] /= 10
В общем случае, везде, где вы имеете присваивание в форме:
левая_часть = левая_часть оп выражение
вы можете записать:
левая_часть оп= выражение
где оп может быть одним из: + - * / &
Когда левая_часть содержит несколько индексирований/сечений, форма оп= будет исполняться обычно быстрее, чем длинная форма. Когда вы привыкнете к короткой форме, вы сможете заметить, что форму оп= легче читать, так как здесь нет необходимости визуально сравнивать левую_часть с её же копией, расположенной в команде справа.
2.5.2 вызов подпрограммы
Команда вызова подпрограммы записывается как имя подпрограммы, сопровождаемое круглыми скобками, в которых должен находиться список величин аргументов, если они предусмотрены, то есть,
plot(x, 23)
2.5.3 команда if (если)
Команда ветвления if (если) проверяет некоторое условие, убеждаясь в его истинности (не-нуль) или ложности (0), а затем обеспечивает переход к выполнению соответствующих тех или иных серий других команд. В команде if могут содержаться дополнительные пункты проверки elsif (а_если) и else (иначе), то есть,
>if a then
>x = 1
>end if
>if a = 9 and find(0, s) then
>x = 4
>y = 5
>else
>z = 8
>end if
>if char = 'a' then
>x = 1
>elsif char = 'b' or char = 'B' then
>x = 2
>elsif char = 'c' then
>x = 3
>else
>x = -1
>end if
Обратите внимание, что elsif хотя и является сокращением от else if, но это сокращение делает текст более ясным, так как отпадает необходимость в лишнем end if, которое пришлось бы ставить при несокращенной форме. А так имеется только одна закрывающая "скобка" end if для всего блока команды if, даже когда в нём содержится множество пунктов elsif.