Изменения

Материал из Chaotic Onyx
Перейти к навигацииПерейти к поиску
Перевод кусочка оригинального гайда по DM "Переопределение verb". Не претендую на полную точность.
Строка 168: Строка 168:  
Используя диапазон по умолчанию, факелы можно призвать из любого места в поле зрения игрока. Если бы мы использовали ''view()'' вместо ''oview()'', можно было бы вызывать объекты, уже находящиеся в инвентаре пользователя, что не имело бы особого смысла.
 
Используя диапазон по умолчанию, факелы можно призвать из любого места в поле зрения игрока. Если бы мы использовали ''view()'' вместо ''oview()'', можно было бы вызывать объекты, уже находящиеся в инвентаре пользователя, что не имело бы особого смысла.
   −
== Overriding Verbs ==
+
== Переопределение verb ==
   −
Suppose instead of a magical summon verb, we just wanted the get verb to have a greater range for torches. This is an example of object-oriented programming in which a child object type provides the same sort of operations as its parent but implements them differently.
+
Предположим, что вместо магического ''verb/summon'' мы просто хотим, чтобы ''verb/get'' имел больший диапазон для факелов. Это пример объектно-ориентированного программирования, в котором дочерний тип объекта предоставляет те же операции, что и его родитель, но реализует их по-другому.
   −
Here is the code for such a modified get verb.
+
Вот код для такого модифицированного ''verb/get''.
    
  obj
 
  obj
Строка 187: Строка 187:  
           loc = usr
 
           loc = usr
   −
The example is written in full to demonstrate the syntax for overriding a previously defined verb. Notice that inside torch, we do not put get() under a verb node. This indicates to the compiler that we are overriding an existing verb rather than defining a new one.
+
Пример написан полностью, чтобы продемонстрировать синтаксис переопределения ранее определенного ''verb''. Обратите внимание, что внутри "torch" мы не помещаем ''get()'' под узлом ''verb''. Это указывает компилятору, что мы переопределяем существующий глагол, а не определяем новый.
 
  −
The difference in the syntax for definition verses re-definition serves the purpose (among other things) of preventing errors that might happen in large projects. For example, you might define a new verb that mistakenly has the same name as an existing one, or you might try to override an existing verb but misspell it in the re-definition. In both of these cases the compiler will issue an error, preventing a problem that might otherwise go unnoticed for quite some time.
      +
Разница в синтаксисе определения и переопределения служит (помимо прочего) для предотвращения ошибок, которые могут возникнуть в больших проектах. Например, вы можете определить новый ''verb'', который по ошибке имеет то же имя, что и существующий, или попытаться переопределить существующий ''verb'', но неправильно написать его в переопределении. В обоих случаях компилятор выдаст ошибку, предотвращая проблему, которая в противном случае могла бы оставаться незамеченной довольно долгое время.
    
== Friendly Arguments ==
 
== Friendly Arguments ==
33

правки

Навигация