DM Guide 10: различия между версиями
ZLOFENIХ (обсуждение | вклад) м (clean up) |
м (Откат правок 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 глава руководства на английском языке] | ||
− | [[ | + | {{Заготовка|url=http://www.byond.com/docs/guide/chap10.html}} |
− | [ | + | |
+ | = Глава 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)'', который перебирает элементы списка. Схожее с этим примером использование индексов нужно, когда вам требуется присвоить элементу другое значение. |
Версия от 01:04, 13 декабря 2016
Это 10 глава перевода оригинального руководства по Dream Maker от разработчиков.
Остальные главы руководства и статьи о программировании на коде BYOND от любителей на русском.
Оригинальная 10 глава руководства на английском языке
В разработке… |
Данная статья помечена как неоконченная. Это означает, что статья находится на доработке, поэтому является неверной или неактуальной. Вы можете помочь проекту Onyx и сообществу SS13 в целом — зайдите на наш Портал сообщества.
|
Глава 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), который перебирает элементы списка. Схожее с этим примером использование индексов нужно, когда вам требуется присвоить элементу другое значение.