Method — различия между версиями
Korvin (обсуждение | вклад) (Новая: Класс <tt>Method</tt> представляет из себя указатель на метод некоторого объекта, либо на функцию. После уст...) |
Korvin (обсуждение | вклад) м |
||
(не показаны 2 промежуточные версии 1 участника) | |||
Строка 1: | Строка 1: | ||
− | Класс <tt>Method</tt> представляет из себя указатель на метод некоторого объекта, либо на функцию. После установки значений соответствующих полей, становится возможным вызывать | + | Класс <tt>Method</tt> представляет из себя указатель на метод некоторого объекта, либо на функцию. После установки значений соответствующих полей, становится возможным вызывать ассоциированный метод косвенным образом. |
− | '''Родители''': <tt>[[ | + | '''Родители''': <tt>[[Object]]</tt> <br> |
− | '''Методы''': <tt> | + | '''Методы''': <tt>[[#name|name]] [[#name=|name=]] [[#ref|ref]] [[#ref=|ref=]] [[#оператор ()|()]] [[#invoke|invoke]]</tt><br> |
'''Статические методы''': <tt>[[#create|create]]</tt> <br> | '''Статические методы''': <tt>[[#create|create]]</tt> <br> | ||
+ | '''Реализует операторы''': | ||
+ | <tt>[[#оператор =|=]]</tt>, | ||
+ | <tt>[[#оператор ==|==]]</tt>, | ||
+ | <tt>[[#оператор <>|<>]]</tt> | ||
__NOTOC__ | __NOTOC__ | ||
Строка 9: | Строка 13: | ||
== create == | == create == | ||
− | create(''объект'', ''имя метода'': <tt>[[ | + | create(''объект'', ''имя метода'': <tt>[[string]]</tt>) <br> |
'''Возвращает''': <tt>Method</tt> <br> | '''Возвращает''': <tt>Method</tt> <br> | ||
Строка 24: | Строка 28: | ||
operator == (''объект сравнения:'' <tt>Method</tt>) <br> | operator == (''объект сравнения:'' <tt>Method</tt>) <br> | ||
− | '''Возвращает''': [[ | + | '''Возвращает''': [[логическое значение]] <br> |
Метод используется для сравнения объектов методов. Возвращает истину в том случае когда текущий объект и передный параметр ссылаются на один и тот же метод одного и того же объекта. | Метод используется для сравнения объектов методов. Возвращает истину в том случае когда текущий объект и передный параметр ссылаются на один и тот же метод одного и того же объекта. | ||
Строка 31: | Строка 35: | ||
operator == (''объект сравнения:'' <tt>Method</tt>) <br> | operator == (''объект сравнения:'' <tt>Method</tt>) <br> | ||
− | '''Возвращает''': [[ | + | '''Возвращает''': [[логическое значение]] <br> |
Инверсия оператора "<tt>[[#оператор ==|==]]</tt>". | Инверсия оператора "<tt>[[#оператор ==|==]]</tt>". | ||
Строка 39: | Строка 43: | ||
== name == | == name == | ||
− | '''Возвращает''': <tt>[[ | + | '''Возвращает''': <tt>[[string]]</tt> <br> |
Метод возвращает имя вызываемого метода. | Метод возвращает имя вызываемого метода. | ||
Строка 45: | Строка 49: | ||
== name= == | == name= == | ||
− | name= (''имя метода:'' <tt>[[ | + | name= (''имя метода:'' <tt>[[string]]</tt>) <br> |
− | set_name(''имя метода:'' <tt>[[ | + | set_name(''имя метода:'' <tt>[[string]]</tt>) <br> |
'''Возвращает''': текущий объект <br> | '''Возвращает''': текущий объект <br> | ||
Строка 81: | Строка 85: | ||
== invoke == | == invoke == | ||
− | invoke(''параметры:'' [[ | + | invoke(''параметры:'' <tt>[[array]]</tt>) <br> |
'''Возвращает''': результат (значение) вызова метода <br> | '''Возвращает''': результат (значение) вызова метода <br> | ||
− | Метод аналогичен по смыслу методу [[#call|call]], за исключением того, что параметры передаются в массиве. При вызове этот массив будет "развернут", как если бы все параметры были записаны через запятую: | + | Метод аналогичен по смыслу методу <tt>[[#call|call]]</tt>, за исключением того, что параметры передаются в массиве. При вызове этот массив будет "развернут", как если бы все параметры были записаны через запятую: |
<source lang="kpp"> | <source lang="kpp"> | ||
var ary = new array; | var ary = new array; |
Текущая версия на 13:02, 17 апреля 2008
Класс 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>