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]
документация