Method
Материал из Deeptown Manual
Класс Method представляет из себя указатель на метод некоторого объекта, либо на функцию. После установки значений соответствующих полей, становится возможным вызывать ассоциированный метод косвенным образом.
Родители: Object
Методы: name name= ref ref= () invoke
Статические методы: create
Реализует операторы:
=,
==,
<>
[править] create
create(объект, имя метода: string)
Возвращает: Method
Создает новую инстанцию и инициализирует указанными данными.
[править] оператор =
operator = (метод: Method)
Возвращает: текущий объект
Копирует данные из объекта параметра в текущий объект.
[править] оператор ==
operator == (объект сравнения: Method)
Возвращает: логическое значение
Метод используется для сравнения объектов методов. Возвращает истину в том случае когда текущий объект и передный параметр ссылаются на один и тот же метод одного и того же объекта.
[править] оператор <>
operator == (объект сравнения: Method)
Возвращает: логическое значение
Инверсия оператора "==".
Примечание: В языке К++ используется форма "!=".
[править] name
Возвращает: string
Метод возвращает имя вызываемого метода.
[править] name=
name= (имя метода: string)
set_name(имя метода: string)
Возвращает: текущий объект
Устанавливает имя вызываемого метода.
[править] ref
Возвращает: текущий объект
Возвращает ассоциированный объект.
[править] ref=
ref= (объект)
set_ref(объект)
Возвращает: текущий объект
Устанавливает ассоциируемый объект, чей метод требуется вызывать.
[править] оператор ()
operator () (...)
call(...)
Возвращает: результат (значение) вызова метода
Вызывает указанный метод у ассоциированного объекта, передавая в качестве параметров собственные параметры. Возвращается значение, возвращенное самим методом. Пример:
var ary = new array; var p = ary.getMethod(:push); p(1, 2, 3); ary.inspect; //значение: [1, 2, 3]
[править] invoke
invoke(параметры: array)
Возвращает: результат (значение) вызова метода
Метод аналогичен по смыслу методу call, за исключением того, что параметры передаются в массиве. При вызове этот массив будет "развернут", как если бы все параметры были записаны через запятую:
var ary = new array; var p = ary.getMethod(:push); p.invoke([1, 2, 3]); ary.inspect; //значение: [1, 2, 3]
