Добавлен , опубликован

WurstScript

Содержание:
Расширяющие функции позволяют вам "добавлять" методы существующим типам, без необходимости создания нового типа или модификации существующего. Расширяющие функции, это особый вид статических функций, однако их вызов происходит подобно тому, как если бы это был родной метод расширяемого типа.
Синтаксис объявления расширяющих функций достаточно прост
public function TYPE.EXTFUNCTIONNAME(PARAMETERS) returns ...
    ...
    // Ключевое слово this предоставляет доступ к экземпляру расширяемого типа
Более подробный пример
// Определение
public function unit.getX() returns real
    return GetUnitX(this)

// Работает с любым типом
public function real.half() returns real
    return this/2

// Принимает параметр
public function int.add( int value )
    return this + value

// Использование
unit u = CreateUnit(...)
...
print( u.getX().half() )

// Так же работает с классами, позволяя обращаться 
// к закрытым членам класса
public function MyClass.getPrivateMember() returns real
    return this.privateMember

// Работает и с кортежами
public function vec2.lengthSquared returns real
    return this.x*this.x+this.y*this.y

`
ОЖИДАНИЕ РЕКЛАМЫ...
1
30
7 лет назад
1
Расширяющие функции, это собой вид статических функций
Полагаю, тут должно быть "особый"
0
17
7 лет назад
0
Полагаю, тут должно быть "особый"
Правильно полагаешь.
0
30
7 лет назад
0
GetLocalPlayer, пробегись по всем пунктам статьи, вычитай косяки и логические несостыковки, потом отпишись в ЛС.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.