Строка 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 == |