Вызываемый объект - Callable object

А вызываемый объект, в компьютерное программирование, это любой объект, который можно назвать функция.

На разных языках

В C ++

В C ++ любой класс, перегрузки оператор вызова функции оператор () может вызываться с использованием синтаксиса вызова функции.

#включают <iostream>структура Фу{    пустота оператор()() const    {        стандартное::cout << "Называется.";    }};int главный(){   Фу foo_instance;   foo_instance();  // Это выведет "Called." к экрану.}

В C #

В PHP

PHP 5.3+ имеет первоклассные функции которые можно использовать, например, в качестве параметра usort () функция:

$ а = множество(3, 1, 4);усорт($ а, функция ($ x, $ y) { возвращаться $ x - $ y; });

В PHP 5.3+ также возможно сделать объекты вызываемыми, добавив магический __invoke () метод в свой класс:[1]

учебный класс Минус{    общественный функция __invoke($ x, $ y) { возвращаться $ x - $ y; }}$ а = множество(3, 1, 4);усорт($ а, новый Минус());

В Python

В Python любой объект с __вызов__() метод может быть вызван с использованием синтаксиса вызова функции.

учебный класс Фу:    def __вызов__(себя):        Распечатать("Называется.")foo_instance = Фу()foo_instance()  # Это выведет "Called." к экрану.

[2]

Другой пример:

учебный класс Аккумулятор:    def __в этом__(себя, п):        себя.п = п    def __вызов__(себя, Икс):        себя.п += Икс        возвращаться себя.п

В дротике

Чтобы ваш класс Dart мог вызываться как функция, реализуйте вызов() метод.

учебный класс WannabeFunction {  вызов(Нить а, Нить б, Нить c) => '$а$б$c!';}главный() {  вар wf = новый WannabeFunction();  вар из = wf("Здравствуй","там,","банда");  Распечатать('$из');}

[3]

Рекомендации

  1. ^ Документация PHP по магическим методам
  2. ^ Бёш, Флориан. "Что такое" вызываемый "в Python?". StackOverflow.com. Получено 24 сентября 2017.
  3. ^ «Экскурсия по языку дротиков». www.dartlang.org. Получено 2019-03-25.

внешняя ссылка