Книга: Язык программирования Euphoria. Справочное руководство
2.5.1 команда присваивания
2.5.1 команда присваивания
В Euphoria команда присваивания служит для придания величины, полученной при вычислении выражения, простой переменной или элементу ряда, или отрезку ряда, то есть,
x = a + b
y[i] = y[i] + 1
y[i..j] = {1, 2, 3}
По этой команде предыдущая величина переменной или элемента(ов) ряда, или отрезка ряда аннулируется, а новая вступает в действие. Например, предположим, что x был 1000-элементным рядом, который мы инициализировали следующим образом:
object x
x = repeat(0, 1000) -- ряд, состоящий из 1000 нулей
а затем мы присвоили x значение атома:
x = 7
Такое действие полностью законно, так как мы объявили x как object. Предыдущая величина x, а именно, 1000-элементный ряд, просто исчезнет. Одновременно то пространство, которое занимал в памяти 1000-элементный ряд, будет автоматически возвращено в резерв вашей программы, благодаря динамическому распределению памяти, работающему в Euphoria.
Заметьте, что символ равенства '=' используется и для записи команды, и как оператор при проверке равенства в выражениях. Но здесь никогда не возникает путаница, так как присваивание в 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.6 команда return (выдать, вернуться)
- 2.5.3 команда if (если)
- 5.4 Команда trap: обработка прерываний
- Scrum-команда: состав
- Команда make и make-файлы
- 21.3.1. Команда arch — вывод архитектуры компьютера
- Глава 4 Контент + команда = SMM
- Команда break в Python:
- Присваивания
- Близость между командами разработчиков и эксплуатации в компании Sparkle Corp
- Рабочая группа, она же руководящая команда
- 1.11 Справочник по наиболее употребительным стандартным командам ОС