Изменения

5394 байта добавлено ,  01:04, 13 декабря 2016
м
Откат правок ZLOFENIХ (обсуждение) к версии Viol
Строка 1: Строка 1:  +
''Это 10 глава перевода оригинального руководства по Dream Maker от разработчиков.''
    +
[http://wiki.ss13.ru/index.php?title=All_about_the_code Остальные главы руководства и статьи о программировании на коде BYOND от любителей на русском.]
    +
[http://www.byond.com/docs/guide/chap10.html Оригинальная 10 глава руководства на английском языке]
   −
[[Файл:LtJ6KqW6mKk.jpg|LtJ6KqW6mKk.jpg]]
+
{{Заготовка|url=http://www.byond.com/docs/guide/chap10.html}}
[https://www.youtube.com/watch?v=wqpseZS3mD0 Конец прекрасной эпохи. Мы еще увидимся, я обещаю!]
+
 
 +
= Глава 10: Списки =
 +
 
 +
''Тёмная и прохладная тишина была нарушена захлебывающимся кровью, истошным и повизгивающим писком телефонного модема. Один свидетель позднее описал его как звук мощностью в 28.8 килодецибелл из огромного комка постоянного тока.''
 +
 
 +
Список - объект данных, содержащий ряд значений. Каждый элемент в списке имеет собственный номер, которые начинаются с 1. Это число называется индексом (''index'') элемента и используется для получения к нему доступа. Таким образом, можно заметить схожесть списков в DM с массивами в языке программирования С.
 +
 
 +
== Объявление списка ==
 +
 
 +
Объявить список можно несколькими способами. Первый - с помощью типа объекта list, как и с другими типами данных. Остальные способы используют специальный синтаксис, который создан специально для списков.
 +
 
 +
# var/list/mylist
 +
# var/mylist[]
 +
# var/mylist = new /list(size)
 +
# 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)'', который перебирает элементы списка. Схожее с этим примером использование индексов нужно, когда вам требуется присвоить элементу другое значение.
1059

правок