Çağrılabilir nesne - Callable object

Bir çağrılabilir nesne, içinde bilgisayar Programlama gibi çağrılabilen herhangi bir nesnedir işlevi.

Farklı dillerde

C ++ ile

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

#Dahil etmek <iostream>yapı Foo{    geçersiz Şebeke()() sabit    {        std::cout << "Aranan.";    }};int ana(){   Foo foo_instance;   foo_instance();  // Bu, "Çağrıldı" sonucunu verecektir. ekrana.}

C #

PHP'de

PHP 5.3+ vardır birinci sınıf işlevler örneğin kullanılabilir parametresi olarak usort () işlev:

$ a = dizi(3, 1, 4);usort($ a, işlevi ($ x, y) { dönüş $ x - y; });

PHP 5.3+ sürümünde bir sihir ekleyerek nesneleri çağırılabilir yapmak da mümkündür. __çağırmak() sınıflarına yöntem:[1]

sınıf Eksi{    halka açık işlevi __çağırmak($ x, y) { dönüş $ x - y; }}$ a = dizi(3, 1, 4);usort($ a, yeni Eksi());

Python'da

İçinde Python ile herhangi bir nesne __telefon etmek__() yöntem işlev çağrısı sözdizimi kullanılarak çağrılabilir.

sınıf Foo:    def __telefon etmek__(kendini):        Yazdır("Aranan.")foo_instance = Foo()foo_instance()  # Bu, "Çağrıldı" sonucunu verecektir. ekrana.

[2]

Başka bir örnek:

sınıf Akümülatör:    def __içinde__(kendini, n):        kendini.n = n    def __telefon etmek__(kendini, x):        kendini.n += x        dönüş kendini.n

Dart'ta

Dart sınıfınızın bir işlev gibi çağrılmasına izin vermek için, telefon etmek() yöntem.

sınıf WannabeFunction {  telefon etmek(Dize a, Dize b, Dize c) => '$a$b$c!';}ana() {  var wf = yeni WannabeFunction();  var dışarı = wf("Selam","Orada,","çete");  Yazdır('$dışarı');}

[3]

Referanslar

  1. ^ Sihirli Yöntemlerle İlgili PHP Belgeleri
  2. ^ Bösch, Florian. "Python'da" çağrılabilir "nedir?". StackOverflow.com. Alındı 24 Eylül 2017.
  3. ^ "Dart Dili Turu". www.dartlang.org. Alındı 2019-03-25.

Dış bağlantılar