Method — различия между версиями

Материал из Deeptown Manual
Перейти к: навигация, поиск
м
м
 
(не показана 1 промежуточная версия 1 участника)
Строка 1: Строка 1:
 
Класс <tt>Method</tt> представляет из себя указатель на метод некоторого объекта, либо на функцию. После установки значений соответствующих полей, становится возможным вызывать ассоциированный метод косвенным образом.
 
Класс <tt>Method</tt> представляет из себя указатель на метод некоторого объекта, либо на функцию. После установки значений соответствующих полей, становится возможным вызывать ассоциированный метод косвенным образом.
  
'''Родители''': <tt>[[Object|Object]]</tt> <br>
+
'''Родители''': <tt>[[Object]]</tt> <br>
'''Методы''': <tt>[[#оператор =|=]] [[#оператор ==|==]] [[#оператор <>|<>]] [[#name|name]] [[#name=|name=]] [[#ref|ref]] [[#ref=|ref=]] [[#оператор ()|()]] [[#invoke|invoke]]</tt><br>
+
'''Методы''': <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>[[string|string]]</tt>) <br>
+
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>
+
'''Возвращает''': [[логическое значение]] <br>
  
 
Метод используется для сравнения объектов методов. Возвращает истину в том случае когда текущий объект и передный параметр ссылаются на один и тот же метод одного и того же объекта.
 
Метод используется для сравнения объектов методов. Возвращает истину в том случае когда текущий объект и передный параметр ссылаются на один и тот же метод одного и того же объекта.
Строка 31: Строка 35:
  
 
operator == (''объект сравнения:'' <tt>Method</tt>) <br>
 
operator == (''объект сравнения:'' <tt>Method</tt>) <br>
'''Возвращает''': [[логическое значение|логическое значение]] <br>
+
'''Возвращает''': [[логическое значение]] <br>
  
 
Инверсия оператора "<tt>[[#оператор ==|==]]</tt>".  
 
Инверсия оператора "<tt>[[#оператор ==|==]]</tt>".  
Строка 39: Строка 43:
 
== name ==
 
== name ==
  
'''Возвращает''': <tt>[[string|string]]</tt> <br>
+
'''Возвращает''': <tt>[[string]]</tt> <br>
  
 
Метод возвращает имя вызываемого метода.
 
Метод возвращает имя вызываемого метода.
Строка 45: Строка 49:
 
== name= ==
 
== name= ==
  
name= (''имя метода:'' <tt>[[string|string]]</tt>) <br>
+
name= (''имя метода:'' <tt>[[string]]</tt>) <br>
set_name(''имя метода:'' <tt>[[string|string]]</tt>) <br>
+
set_name(''имя метода:'' <tt>[[string]]</tt>) <br>
 
'''Возвращает''': текущий объект <br>
 
'''Возвращает''': текущий объект <br>
  
Строка 81: Строка 85:
 
== invoke ==
 
== invoke ==
  
invoke(''параметры:'' <tt>[[array|array]]</tt>) <br>
+
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>

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
информация
документация
Инструменты