Method
Класс 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(...)
Возвращает: результат (значение) вызова метода
Вызывает указанный метод у ассоциированного объекта, передавая в качестве параметров собственные параметры. Возвращается значение, возвращенное самим методом. Пример: <source lang="kpp"> var ary = new array; var p = ary.getMethod(:push); p(1, 2, 3); ary.inspect; //значение: [1, 2, 3] </source>
invoke
invoke(параметры: array)
Возвращает: результат (значение) вызова метода
Метод аналогичен по смыслу методу call, за исключением того, что параметры передаются в массиве. При вызове этот массив будет "развернут", как если бы все параметры были записаны через запятую: <source lang="kpp"> var ary = new array; var p = ary.getMethod(:push); p.invoke([1, 2, 3]); ary.inspect; //значение: [1, 2, 3] </source>