Articulo de referencia

Objeto invocable

Un objeto invocable , en programación informática , es cualquier objeto que puede ser llamado como una función . En diferentes idiomas En C++ puntero a función ; puntero a funci...

Un objeto invocable , en programación informática , es cualquier objeto que puede ser llamado como una función .

En diferentes idiomas

En C++

En C++, cualquier clase que sobrecargue el operador de llamada de función operator()puede ser llamada usando la sintaxis de llamada de función.

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

      
    
          
    


int main () { Foo foo_instance ; foo_instance (); // Esto mostrará "Llamado." en la pantalla. } 

    
     

Cª#

En PHP

PHP 5.3+ tiene funciones de primera clase que se pueden usar, por ejemplo, como parámetro de la usort()función:

$a  =  matriz ( 3 ,  1 ,  4 ); 
usort ( $a ,  función  ( $x ,  $y )  {  devolver  $x  -  $y ;  });

También es posible en PHP 5.3+ hacer que los objetos sean invocables agregando un __invoke()método mágico a su clase: [1]

clase  Minus 
{ 
    función pública  __invoke ( $x , $y ) { devolver $x - $y ; } }        


$a  =  matriz ( 3 ,  1 ,  4 ); 
usort ( $a ,  nuevo  Minus ());

En Python

En Python, cualquier objeto con un __call__()método puede ser llamado utilizando la sintaxis de llamada de función.

clase  Foo : 
    def  __call__ ( self ): 
        print ( "Llamado." )

foo_instance  =  Foo () 
foo_instance ()   # Esto mostrará "Llamado" en la pantalla.

[2]

Otro ejemplo:

clase  Acumulador : 
    def  __init __ ( self ,  n ) 
        : self.n = n  

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

En dardo

Los objetos invocables se definen en Dart utilizando el call()método.

clase WannabeFunction { llamar ( Cadena a , Cadena b , Cadena c ) => ' $ a $ b $ c !' ; }  
           


main () { var wf = new WannabeFunction (); var out = wf ( "Hola" , "ahí" , "pandilla" ); print ( ' $ out ' ); } 
      
     
  

[3]

En rápido

En Swift , los objetos invocables se definen utilizando callAsFunction. [4]

struct  CallableStruct  { 
    var  valor :  Int 
    func  callAsFunction ( _  numero :  Int ,  escala :  Int )  { 
        print ( escala  *  ( numero  +  valor )) 
    } 
} 
let  callable  =  CallableStruct ( valor :  100 ) 
callable ( 4 ,  escala :  2 ) 
callable.callAsFunction ( 4 , escala : 2 ) // Ambas llamadas de función imprimen 208.  


Referencias

  1. ^ Documentación PHP sobre métodos mágicos
  2. ^ Bösch, Florian. "¿Qué es un "callable" en Python?". StackOverflow.com . Consultado el 24 de septiembre de 2017 .
  3. ^ "Un recorrido por el lenguaje Dart". www.dartlang.org . Consultado el 25 de marzo de 2019 .
  4. ^ "Declaraciones: el lenguaje de programación Swift (Swift 5.6)". docs.swift.org . Consultado el 28 de febrero de 2022 .
  • Concepto de llamada en C++


Obtenido de "https://es.wikipedia.org/w/index.php?title=Objeto_invocable&oldid=1229774989"