DM Guide 10

Материал из Chaotic Onyx
Перейти к навигацииПерейти к поиску

Это 10 глава перевода оригинального руководства по Dream Maker от разработчиков.

Остальные главы руководства и статьи о программировании на коде BYOND от любителей на русском.

Оригинальная 10 глава руководства на английском языке

В разработке…


Jobeng.png
Данная статья помечена как неоконченная. Это означает, что статья находится на доработке, поэтому является неверной или неактуальной.

Вы можете помочь проекту Onyxyeye@256x256.png Onyx и сообществу Animus-logo.png SS13 в целом — зайдите на наш Bus Mainframes.gif Портал сообщества.
Также вы можете прочитать эту статью на зарубежном вики-проекте.


Глава 10: Списки

Тёмная и прохладная тишина была нарушена захлебывающимся кровью, истошным и повизгивающим писком телефонного модема. Один свидетель позднее описал его как звук мощностью в 28.8 килодецибелл из огромного комка постоянного тока.

Список - объект данных, содержащий ряд значений. Каждый элемент в списке имеет собственный номер, которые начинаются с 1. Это число называется индексом (index) элемента и используется для получения к нему доступа. Таким образом, можно заметить схожесть списков в DM с массивами в языке программирования С.

Объявление списка

Объявить список можно несколькими способами. Первый - с помощью типа объекта list, как и с другими типами данных. Остальные способы используют специальный синтаксис, который создан специально для списков.

  1. var/list/mylist
  2. var/mylist[]
  3. var/mylist = new /list(size)
  4. var/mylist[size]

Первые два способа идентичны друг другу. Они просто задают переменную списка. Но стоит заметить, что они не создают объект списка. Здесь происходит тоже самое, что и при объявлении переменных любого другого типа (например, существа) - вы определяете только место хранения информации, но не саму информацию - значение списка будет null.

Третий и четвертый методы объявления списка задают также и некоторую переменную его размера. Она указывает сколько элементов может хранится в этом списке. Поскольку заданный размер можно изменить в любой момент, то эта переменная может равняться нулю.

Обращение к элементам списка

Вы можете получить доступ к конкретному элементу списка, указав его индекс в квадратных скобках [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), который перебирает элементы списка. Схожее с этим примером использование индексов нужно, когда вам требуется присвоить элементу другое значение.