Callable object
A callable object, in computer programming, is any object that can be called like a function.
In different languages
    
    In C++
    
- pointer to function;
- pointer to member function;
- functor;
- lambda expression.
- std::functionis a template class that can hold any callable object that matches its signature.
In C++, any class that overloads the function call operator operator() may be called using function-call syntax.
#include <iostream>
struct Foo
{
    void operator()() const
    {
        std::cout << "Called.";
    }
};
int main()
{
   Foo foo_instance;
   foo_instance();  // This will output "Called." to the screen.
}
In C#
    
In PHP
    
PHP 5.3+ has first-class functions that can be used e.g. as parameter to the usort() function:
$a = array(3, 1, 4);
usort($a, function ($x, $y) { return $x - $y; });
It is also possible in PHP 5.3+ to make objects invokable by adding a magic __invoke() method to their class:[1]
class Minus
{
    public function __invoke($x, $y) { return $x - $y; }
}
$a = array(3, 1, 4);
usort($a, new Minus());
In Python
    
In Python any object with a __call__() method can be called using function-call syntax.
class Foo:
    def __call__(self):
        print("Called.")
foo_instance = Foo()
foo_instance()  # This will output "Called." to the screen.
Another example:
class Accumulator:
    def __init__(self, n):
        self.n = n
    def __call__(self, x):
        self.n += x
        return self.n
In Dart
    
To allow your Dart class to be called like a function, implement the call() method.
class WannabeFunction {
  call(String a, String b, String c) => '$a $b $c!';
}
main() {
  var wf = new WannabeFunction();
  var out = wf("Hi","there,","gang");
  print('$out');
}
In Swift
    
In Swift, callable objects are defined using callAsFunction.[4]
struct CallableStruct {
    var value: Int
    func callAsFunction(_ number: Int, scale: Int) {
        print(scale * (number + value))
    }
}
let callable = CallableStruct(value: 100)
callable(4, scale: 2)
callable.callAsFunction(4, scale: 2)
// Both function calls print 208.
References
    
- PHP Documentation on Magic Methods
- Bösch, Florian. "What is a "callable" in Python?". StackOverflow.com. Retrieved 24 September 2017.
- "A Tour of the Dart Language". www.dartlang.org. Retrieved 2019-03-25.
- "Declarations — The Swift Programming Language (Swift 5.6)". docs.swift.org. Retrieved 2022-02-28.
    This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.