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 chiamato e riutilizzato più volte. È possibile passare informazioni a una funzione e questa può restituire le informazioni. Molti linguaggi di programmazione hanno funzioni integrate a cui puoi accedere nella loro libreria, ma puoi anche creare le tue funzioni.
Impara le basi della ricorsione, lo strumento essenziale ma un po 'complicato per i programmatori.
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 essere eseguito dal punto in cui 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 le 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.
Relazionato: 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, viene chiamata la funzione che abbiamo scritto 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 utilizzato 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 vuoi che la tua funzione esegua. Nell'esempio precedente, la funzione esegue una riga di codice.
I tuoi occhi attenti potrebbero averlo notato Stampa() è anche una funzione, ma è chiamata in modo diverso dalla nostra funzione. Mantieni questo pensiero in questo momento, esploreremo le funzioni e i parametri in seguito.
JavaScript
function helloFunction () {
alert ("Hello World!");
}
helloFunction ();
In JavaScript, la parola chiave funzione viene utilizzato 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 tuoi programmi diventano più complessi.
Nota: molto simile Stampa() nell'esempio precedente, mettere in guardia() è anche una funzione.
C ++
#includere
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ì, principale() è una funzione. Quando esegui un programma C ++, chiami automaticamente la funzione main. Quando la funzione principale è completata con successo, restituisce 0 all'uscita 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 ti accorgi 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 nuovamente un'occhiata agli esempi precedenti, ma questa volta passiamo la frase che vogliamo che venga emessa.
Pitone
def helloFunction (newPhrase):
print (newPhrase)
helloFunction ("La nostra nuova frase")
Ora, tra le parentesi, la nostra funzione dichiara che necessita di una variabile per essere eseguita. Abbiamo chiamato la variabile newPhrase e ora possiamo usarlo 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 ("La nostra nuova frase");
C ++
#includere
using namespace std;
void helloFunction (string newPhrase) {
cout << newPhrase;
}
int main () {
helloFunction ("La nostra nuova frase");
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.
Relazionato: 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 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):
restituire a + b
stampa (aggiunta di funzione (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 ritorno dice alla funzione di restituire i seguenti dati, in questo caso, 2 + 4 o 6. Chiamiamo la funzione all'interno di Stampa() funzione.
Una volta che il nostro programma fosse arrivato a quella riga, si sarebbe fermato, avrebbe eseguito la nostra funzione e poi sarebbe continuato come se addingFunction (2, 4) era in realtà solo il valore restituito 6.
JavaScript
Il codice JavaScript è molto simile al codice Python. La differenza principale è che la funzione viene chiamata in un avviso.
function addingFunction (a, b) {
restituire a + b;
}
avviso (aggiunta di funzione (2, 4));
C ++
#includere
using namespace std;
int addFunction (int a, int b) {
restituire 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. Lo vedrai vuoto è 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.
Le variabili globali potrebbero sembrare semplici, ma spesso sono la causa di tanti bug. Ecco come ottimizzare il tuo codice con l'incapsulamento.
- Programmazione
- Programmazione
- Programmazione funzionale
J. Seaton è uno scrittore di scienze specializzato nella scomposizione di argomenti complessi. Ha un dottorato di ricerca presso l'Università del Saskatchewan; la sua ricerca si è concentrata sull'utilizzo dell'apprendimento basato sul gioco per aumentare il coinvolgimento degli studenti online. Quando non lavora, la troverai con lei che legge, gioca ai videogiochi o fa giardinaggio.
Iscriviti alla nostra Newsletter
Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!
Ancora un passo…!
Conferma il tuo indirizzo e-mail nell'e-mail che ti abbiamo appena inviato.