çağrılabilir nesne - Callable object

Bir çağrılabilir nesne , içinde bilgisayar programlama , bir benzeri çağrılabilir herhangi nesnedir fonksiyonu .

farklı dillerde

C++'da

C++'da, işlev çağrısı operatörünü aşırı yükleyen herhangi bir sınıf , işlev operator()çağrısı sözdizimi kullanılarak çağrılabilir.

#include <iostream>
struct Foo
{
    void operator()() const
    {
        std::cout << "Called.";
    }
};

int main()
{
   Foo foo_instance;
   foo_instance();  // This will output "Called." to the screen.
}

C#'da

PHP'de

PHP 5.3+, örneğin işleve parametre olarak kullanılabilecek birinci sınıf işlevlere sahiptir usort():

$a = array(3, 1, 4);
usort($a, function ($x, $y) { return $x - $y; });

PHP 5.3+ sürümünde __invoke(), sınıflarına sihirli bir yöntem ekleyerek nesneleri çağrılabilir hale getirmek de mümkündür :

class Minus
{
    public function __invoke($x, $y) { return $x - $y; }
}

$a = array(3, 1, 4);
usort($a, new Minus());

Python'da

Gelen Python bir herhangi bir nesne __call__()yöntemi fonksiyon çağrısı sözdizimi kullanılarak çağrılabilir.

class Foo:
    def __call__(self):
        print("Called.")

foo_instance = Foo()
foo_instance()  # This will output "Called." to the screen.

Başka bir örnek:

class Accumulator:
    def __init__(self, n):
        self.n = n

    def __call__(self, x):
        self.n += x
        return self.n

Dart'ta

Dart sınıfınızın bir işlev gibi çağrılmasına izin vermek için call()yöntemi uygulayın.

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');
}

Referanslar

Dış bağlantılar