Che cos’è una funzione nella programmazione?

Ti ritrovi spesso a copiare e incollare il tuo codice per riutilizzarlo in diverse sezioni del tuo programma?

In tal caso, potresti prendere in considerazione l'utilizzo di functions. Le funzioni sono una caratteristica molto potente dei linguaggi di programmazione. Possono rendere il codice più efficiente, più facile da leggere ed elegante.

Cos'è una funzione?

Una funzione è un blocco di codice che esegue un'attività. Può essere richiamato e riutilizzato più volte. È possibile passare informazioni a una funzione e questa può restituire le informazioni. Molti linguaggi di programmazione hanno funzioni incorporate a cui puoi accedere nella loro libreria, ma puoi anche creare le tue funzioni.

Quando chiamate una funzione, il programma metterà in pausa il programma corrente ed eseguirà la funzione. La funzione verrà letta dall'alto verso il basso. Una volta completata la funzione, il programma continua a funzionare dove era stato interrotto. Se la funzione ha restituito un valore, tale valore verrà utilizzato nel punto in cui è stata chiamata la funzione.

Come scrivi una funzione?

Esistono molti modi diversi per scrivere funzioni. La sintassi esatta dipenderà dal linguaggio in cui stai programmando. Mostreremo esempi in Python, JavaScript e C ++ per dimostrare una gamma di sintassi di programmazione.

Correlati: Perché i linguaggi di programmazione non possono esistere senza funzioni

Funzioni vuote

Il primo tipo di funzione che esamineremo è una funzione void. Ciò significa semplicemente che la funzione non restituisce un valore. Le funzioni Void vengono utilizzate per completare una serie di istruzioni. In questi esempi, la funzione che abbiamo scritto si chiama helloFunction . Lo scopo della funzione è generare "Hello World".

SUGGERIMENTO: dai nomi alle funzioni che spieghino cosa fanno. Sarà più facile gestire le funzioni e leggere il codice man mano che il programma diventa più complesso.

Pitone

 def helloFunction():
print("Hello World")
helloFunction()

La parola chiave def viene utilizzata in Python per definire e creare una funzione. Successivamente, è il nome della funzione. Le istruzioni nella funzione seguono nella riga successiva dopo i due punti. Lo spazio bianco è importante in Python, quindi assicurati di indentare tutto il codice che desideri venga eseguito dalla tua funzione. Nell'esempio precedente, la funzione esegue una riga di codice.

I tuoi occhi attenti potrebbero aver notato che anche print () è una funzione, ma è chiamata in modo diverso dalla nostra. Mantieni questo pensiero adesso, esploreremo le funzioni e i parametri in seguito.

JavaScript

 function helloFunction(){
alert("Hello World!");
}
helloFunction();

In JavaScript, la funzione parola chiave viene utilizzata per creare funzioni. Successivamente, abbiamo il nome della funzione. Qualsiasi codice che cade tra le parentesi graffe viene eseguito quando viene chiamata la funzione.

Lo spazio bianco non è importante in JavaScript, ma è consuetudine indentare il codice nella funzione. Il rientro rende il codice più facile da leggere, il che è molto importante man mano che i programmi diventano più complessi.

Nota: proprio come print () nell'esempio precedente, anche alert () è una funzione.

C ++

 #include <iostream>
using namespace std;
void helloFunction(){
cout << "Hello World!";
}
int main(){
helloFunction();
return 0;
}

Le funzioni vengono create in modo diverso in C ++. Invece di una parola chiave per definire una funzione, la prima parola descrive il tipo di dati che la funzione restituirà. In questo caso, la nostra funzione non restituisce alcun dato, quindi i dati sono nulli. Successivamente, abbiamo il nome della funzione. Simile a JavaScript, tutto il codice tra le parentesi graffe viene eseguito quando viene chiamata la funzione. Analogamente a JavaScript, lo spazio bianco non influisce sulla funzione ma è una buona pratica.

Hai individuato un'altra funzione nel codice C ++? Sì, main () è una funzione. Quando esegui un programma C ++, chiami automaticamente la funzione main. Quando la funzione principale è completata con successo, restituisce 0 quando esce dal programma per segnalare che non ci sono stati errori durante l'esecuzione del programma.

Funzioni che richiedono valori

Le funzioni Void sono ottime se scopri che stai scrivendo lo stesso bit di codice più e più volte. Ma possono essere limitanti. Sono statici e non cambiano. Completano sempre le stesse istruzioni. Un modo per aumentare la loro utilità è passare valori diversi alla funzione.

Avrai notato che le parentesi seguivano i nomi di tutte le nostre funzioni. Tra parentesi, possiamo dichiarare che i dati sono necessari per eseguire la nostra funzione. Quindi possiamo utilizzare i dati passati alla nostra funzione nella funzione. Diamo di nuovo un'occhiata agli esempi precedenti, ma questa volta passiamo la frase che vogliamo che venga emessa.

Pitone

 def helloFunction(newPhrase):
print(newPhrase)
helloFunction("Our new phrase")

Ora, tra le parentesi, la nostra funzione dichiara che necessita di una variabile per essere eseguita. Abbiamo chiamato la variabile newPhrase e ora possiamo usarla nella nostra funzione. Quando chiamiamo la funzione, dobbiamo passare le informazioni richieste inserendole tra le parentesi. Le stesse modifiche sono state apportate in JavaScript.

JavaScript

 function helloFunction(newPhrase){
alert(newPhrase);
}
helloFunction("Our new phrase");

C ++

 #include <iostream>
using namespace std;
void helloFunction(string newPhrase){
cout << newPhrase;
}
int main(){
helloFunction("Our new Phrase");
return 0;
}

La nostra funzione C ++ richiedeva qualche informazione in più. Sappiamo che la tua funzione vuole dati di stringa, ma non è abbastanza buono per C ++. Quando crei la tua funzione devi specificare che tipo di dati richiede la tua funzione. Se non si invia il tipo corretto di dati, la funzione creerà un errore.

Questo potrebbe sembrare un po 'fastidioso, ma le lingue rigorose possono spesso farti risparmiare mal di testa. Se scrivi una funzione in JavaScript che richiede un numero intero, ma il numero viene inviato come stringa, può creare un bug molto difficile da rintracciare.

Correlati: 5 linguaggi di programmazione funzionale che dovresti conoscere

Funzioni che restituiscono un valore

L'ultima capacità della funzione che tratteremo è la restituzione dei dati. Ciò è particolarmente utile quando si desidera modificare i dati prima di utilizzarli. Sebbene tu possa scriverlo in linea, se utilizzerai gli stessi calcoli molte volte, come convertire l'imperiale in metrico, potrebbe avere più senso scriverlo come una funzione. Il nostro esempio sarà più semplice. La nostra funzione richiederà due numeri interi e restituirà la somma.

Pitone

 def addingFunction(a, b):
return a + b
print(addingFunction(2, 4))

In questo esempio, la nostra funzione richiede due variabili invece di una. Lo indichiamo separando i nomi delle nostre variabili con una virgola. La parola chiave return dice alla funzione di restituire i seguenti dati, in questo caso, 2 + 4 o 6. Chiamiamo la funzione all'interno della funzione print () .

Una volta che il nostro programma è arrivato a quella riga, si sarebbe messo in pausa, avrebbe eseguito la nostra funzione e quindi avrebbe continuato come se l' aggiunta di Funzione (2, 4) fosse in realtà solo il valore 6 restituito.

JavaScript

Il codice JavaScript è molto simile al codice Python. La differenza principale è che la funzione viene chiamata in un avviso.

 function addingFunction(a, b){
return a + b;
}
alert(addingFunction(2, 4));

C ++

 #include <iostream>
using namespace std;
int addingFunction(int a, int b){
return a + b;
}
int main(){
cout << addingFunction(2, 4) ;
return 0;
}

Il codice C ++ viene eseguito in modo simile, ma come al solito, richiede un po 'più di informazioni. Per prima cosa, dobbiamo dire quale tipo di dati restituirà la nostra funzione. Vedrai che void è stato cambiato in int . Ciò significa che invece di non restituire dati, la nostra funzione restituirà un numero intero. Oltre a ciò, il codice è simile al codice che abbiamo già esplorato.

Gestisci le tue funzioni

Una cosa divertente delle funzioni è che le funzioni possono chiamare altre funzioni. Possono persino chiamarsi! Ma da un grande potere derivano grandi responsabilità. Non impazzire creando codice con funzioni che chiamano altre funzioni che chiamano ancora più funzioni.

Come accennato, ogni volta che viene chiamata una funzione, il programma si ferma mentre esegue la funzione. Ciò significa che il programma è tenuto in memoria attiva. Se chiami molte altre funzioni senza completarle, stai utilizzando più memoria attiva. Se non stai attento, il tuo programma può sfuggirti di mano.