Строка 9: |
Строка 9: |
| = Глава 10: Списки = | | = Глава 10: Списки = |
| | | |
− | ''The dark and chilling silence was broken by the blood curdling scream of a modem. One witness later identified it as 28.8 kbaud from the final strangulated burst of static.'' | + | ''Тёмная и прохладная тишина была нарушена захлебывающимся кровью, истошным и повизгивающим писком телефонного модема. Один свидетель позднее описал его как звук мощностью в 28.8 килодецибелл из огромного комка постоянного тока.'' |
| | | |
| Список - объект данных, содержащий ряд значений. Каждый элемент в списке имеет собственный номер, которые начинаются с 1. Это число называется индексом (''index'') элемента и используется для получения к нему доступа. Таким образом, можно заметить схожесть списков в DM с массивами в языке программирования С. | | Список - объект данных, содержащий ряд значений. Каждый элемент в списке имеет собственный номер, которые начинаются с 1. Это число называется индексом (''index'') элемента и используется для получения к нему доступа. Таким образом, можно заметить схожесть списков в DM с массивами в языке программирования С. |
Строка 25: |
Строка 25: |
| | | |
| Третий и четвертый методы объявления списка задают также и некоторую переменную его размера. Она указывает сколько элементов может хранится в этом списке. Поскольку заданный размер можно изменить в любой момент, то эта переменная может равняться нулю. | | Третий и четвертый методы объявления списка задают также и некоторую переменную его размера. Она указывает сколько элементов может хранится в этом списке. Поскольку заданный размер можно изменить в любой момент, то эта переменная может равняться нулю. |
| + | |
| + | == Обращение к элементам списка == |
| + | |
| + | Вы можете получить доступ к конкретному элементу списка, указав его индекс в квадратных скобках ''[i]''. |
| + | |
| + | Следующий пример, бесполезен, но он наглядно показывает как можно создать несколько объектов и запомнить их в списке. |
| + | |
| + | var/dwarves[7] |
| + | |
| + | world/New() |
| + | var/i |
| + | for(i=1,i<=7,i++) |
| + | dwarves[i] = new/mob/dwarf() |
| + | |
| + | Конкретные гномы могут быть доступны в любой момент, просто вам нужно воспользоваться их индексами: dwarves[1], dwarves[2]. |
| + | |
| + | Обращение к элементу с индексом меньше 1 или больше заданного количества элементов - ошибка. Она приведет к ошибке выполнения программы, так что будьте осторожны, важно находится в границах списка, о чем мы расскажем в следующем разделе. |
| + | |
| + | == Переменная ''len'' == |
| + | |
| + | Длина списка сохранена в его переменной ''len''. С ее помощью хранится размер списка. Чаще всего переменную ''len'' используют, чтобы узнать сколько элементов находится в списке. Мы можем улучшить предыдущий пример таким образом, чтобы количество гномов определялось только в одном месте. |
| + | |
| + | var/dwarves[7] |
| + | |
| + | world/New() |
| + | var/i |
| + | for(i=1,i<=dwarves.len,i++) |
| + | dwarves[i] = new/mob/dwarf() |
| + | |
| + | Это очень частое использование цикла ''for''. Обратите внимание на разницу между таким циклом для индексов списка и другим типом цикла ''for(i in dwarves)'', который перебирает элементы списка. Схожее с этим примером использование индексов нужно, когда вам требуется присвоить элементу другое значение. |