Callback: cosa sono le funzioni di richiamo?

JavaScript è uno dei linguaggi dominanti per la creazione di siti. Molti sfruttano la possibilità che offre il linguaggio di scripting per creare siti interattivi capaci di reagire agli input. Anche questo linguaggio si serve di variabili, oggetti e funzioni con accesso reciproco in grado di rappresentare sempre lo stesso risultato su diversi browser. La cosiddetta funzione di callback (in italiano: funzione di richiamo) si cela dietro la maggior parte dei tasti e delle visualizzazioni posticipate di contenuti.

Funzioni di questo tipo non sono però un’esclusiva di JavaScript: anche altri noti linguaggi di programmazione come C, Java, PHP o Python utilizzano callback per conferire parametri utente precisi in modo semplice.

Registra subito un dominio .it in offerta speciale!

Registra ora il tuo dominio .it con un consulente personale incluso!

Semplice
Sicuro
Assistenza 24/7

Cos’è una funzione di callback?

Le funzioni lavorano sempre con parametri su cui basarsi. Si parla di funzione di callback quando una funzione è trasmessa a un’altra funzione come parametro. Si ricorre spesso a queste funzioni per librerie e framework come le applicazioni per JavaScript jQuery, Angular oppure node.js che rendono le funzioni estendibili e permettono di visualizzarle con input o in circostanze precise.

Come funziona una callback?

Una funzione di callback ha sempre un effetto definito legato a circostanze definite. Per questo le funzioni di callback si aprono soltanto quando accade un’azione già definita in modo chiaro. Un ottimo esempio di funzione di richiamo è rappresentato dagli EventHandler (in italiano: gestore di eventi), che si applicano ad esempio per elementi HTML come i tasti. Un event o evento può essere rappresentato da un clic del mouse che permette di attivare la funzione di callback che si occupa a sua volta del collegamento con un'altra pagina. Un altro scenario possibile è l’inserimento di un valore in un modulo da compilare.

Vi riassumiamo di seguito la differenza principale tra una funzione tradizionale e una funzione di callback: mentre una funzione normale è visualizzata direttamente, la funzione di richiamo è solo definita e viene visualizzata ed eseguita soltanto quando si verifica un evento preciso. Come già accennato, le funzioni di callback si utilizzano in diversi linguaggi di programmazione che si differenziano per la sintassi e la configurazione dei metodi, ma mantengono lo stesso principio della callback.

Funzione di callback in JavaScript

Le funzioni di callback sono molto diffuse nella programmazione con JavaScript, che si tratti di una funzione attivata premendo un tasto o di un contenuto posticipato collegato a una funzione setTimeout().

Un tasto tradizionale rappresenta un esempio semplice per illustrare una funzione di richiamo in JavaScript:

document.getElementById("Tasto1").addEventListener("click", function() {
console.log("Tasto premuto");
}, false);

In questo esempio la callback avviene tramite un EventListerner, attivato dopo un evento preciso, che in questo caso corrisponde a un clic sul tasto contrassegnato dall’ID “Tasto1”. Un clic sul tasto soddisfa le condizioni per la funzione di callback, che viene perciò eseguita ; nella console compare quindi il messaggio “Tasto premuto”. Per garantire la compatibilità con le versioni più vecchie dei browser, abbiamo utilizzato nell'esempio anche il parametro “false”.

Funzioni di callback in PHP

In PHP le funzioni di callback si attivano in modo simile a JavaScript. Tuttavia, le funzioni di richiamo nel linguaggio di scripting possono essere anche metodi di un oggetto che dispongono di metodi di classe statici.

Un esempio di funzione classica di callback in PHP:

function my_callback_function() {
	echo 'Ciao mondo!';
}

Attivando questa funzione verrà mostrata la stringa “Ciao mondo!”. Per attivare la callback come metodo, si procede come indicato di seguito:

class MyClass {
	static function myCallbackMethod() {
		echo 'Ciao Mondo!';
	}
}

In PHP le callback sono un mezzo diffuso per permettere la comunicazione tra lefunzioni e si utilizzano spesso per implementare plugin o moduli in modo pulito garantendo le loro funzioni.

Funzioni di callback in Python

Per la sua sintassi semplice, Python è uno dei linguaggi di programmazione più amati. Si tratta di un linguaggio versatile utilizzato sia per i software sia per gli hardware e rappresenta il punto di partenza ideale per chi vuole imparare a programmare. Python è particolarmente richiesto nei settori della scienza dei dati e dell’apprendimento automatico e presenta numerosi vantaggi rispetto agli altri linguaggi.

In Python le callback si utilizzano soprattutto per assegnare agli elementi UI diversi eventi. Nell'esempio seguente si definiscono due funzioni, la callback “get_square” e la visualizzazione “caller”. Infine sarà attivata la callback:

>>> def get_square(val):
		return val ** 2
>>> def caller(func, val):
		return func(val)
>>> caller(get_square, 5)

La sintassi nella funzione di callback ha una configurazione molto semplice, in modo simile a JavaScript e PHP.

Funzioni di callback in Java

In Java l'esecuzione di una funzione di callback è piuttosto insolita. Per replicare il principio, si utilizza ad esempio l’infrastruttura Reflection, dove i metodi e le funzioni vengono mappati e rielaborati in oggetti. Per questo motivo Reflection è più una funzione di libreria che di callback.

Anche l'approccio SAX di Java funziona in modo simile alla callback: un file XML si legge attraverso un generatore di parser XML e in base al risultato ottenuto si visualizza un metodo preciso di callback, tra cui i metodi startDocument() e startElement().

Funzioni di callback in C

Nei linguaggi di programmazione C, la funzione di callback si integra in modo simile a JavaScript. Il linguaggio è utilizzato spesso per la programmazione di sistema e di applicazione e rappresenta una componente fissa per la programmazione di kernel di sistemi o di sistemi operativi. Molti linguaggi di programmazione, come ad esempio JavaScript, PHP, C++, Java o anche C#, sono fortemente influenzati dalle caratteristiche di C; per questo i diversi linguaggi presentano molti elementi comuni nella sintassi e nei metodi.

Un esempio di funzione di callback in C:

void A()
{
	printf("Io sono una funzione A\n");
}
// La Callback Function
void B(void (*ptr)())
{
	(*ptr) (); // Qui si visualizza la callback di A
}
int main()
{
	void (*ptr)() = &A;
	// Si visualizza la funzione B
	// La funzione A viene trasmessa come argomento
	B(ptr);
	return 0;
}

Il risultato di questo codice è il seguente:"Io sono una funzione A.” Come nel caso di JavaScript, anche qui la funzione di callback viene visualizzata soltanto quando si verifica un evento preciso. C utilizza questo tipo di funzione per creare nuove librerie per la programmazione e per inviare segnali dal kern necessari per gli eventi asincroni.

Managed WordPress Hosting con IONOS!

Lancia velocemente il tuo sito web e approfitta della versione di WordPress più sicura e aggiornata!

Dominio gratis
SSL
Supporto 24/7

Abbiamo una proposta per te:
Web hosting a partire da 1 €/mese!

Dominio gratis
Certificato SSL Wildcard incluso
Assistenza clienti 24/7
A partire da 1 €/mese IVA escl. per un anno,
poi 8 €/ mese IVA escl.