Importanza delle funzioni di ordine superiore
Per quanto riguarda le funzioni di ordine superiore, alcuni punti chiave includono:
Esempio 1: usare una funzione per prendere un'altra funzione come argomento
Consideriamo il primo esempio di una funzione di ordine superiore. Passiamo la funzione in una determinata funzione come parametro.
Qui, l'oggetto è designato come "myobject". Quindi, all'interno della definizione principale dell'oggetto, abbiamo chiamato una funzione "func". La funzione "func" prende il valore numerico e la funzione "multiplythree" come input. Abbiamo nuovamente invocato la funzione "func" per stampare il valore di "x" che viene passato come input all'interno della "F". Infine, abbiamo impostato l'operazione "X*3" nella funzione "MultiplyThree".
Mentre abbiamo superato la funzione "multiplythree" all'interno dell'altra funzione "func", la funzione "func" emette il risultato della funzione "multiplybythree" come segue:
Esempio 2: usando la funzione anonima come lambda
Una funzione anonima non ha un nome ma svolge la stessa funzione. Quando non intendi ripetere una funzione in seguito, la creazione di una versione anonima è una buona idea. In Scala, gli operatori wild card “=>” razzo e "_" sottolineano possono essere utilizzati per generare funzioni anonime.
Eccone uno per illustrare:
All'interno del metodo principale dell'oggetto "MyDemo", abbiamo creato due variabili. Le variabili sono dichiarate come "Res1" e "Res2". La variabile "Res1" è inizializzata con la funzione anonima utilizzando l'operatore "=>". La funzione anonima è impostata con i parametri X e Y e sul lato destro dell'operatore di razzo "=>" abbiamo impostato l'equazione "x+y". Dopodiché, abbiamo un'altra funzione anonima che viene impiegata con il jolly "_". All'interno del metodo Println, abbiamo chiamato rispettivamente "Res1" e "Res2" e abbiamo assegnato loro due valori.
I risultati per entrambe le funzioni anonime sono generati come segue:
Esempio 3: usando l'espressione multilina
Il termine "espressione multilina" si riferisce alle espressioni che abbracciano molte linee. Quando si utilizza le espressioni multilinea in Scala, utilizzare ATTENZIONE. Per evitare problemi relativi all'espressione multilina, è possibile utilizzare i seguenti metodi:
L'oggetto "mytest" ha la definizione di tre funzioni. La prima funzione è definita come "sum1" che prende i parametri "i" e "j". I valori di input "i" e "j" sono impostati come "i+j" all'interno del blocco della funzione "sum1". Successivamente, abbiamo un'altra funzione come "sum2" che prende anche i valori di input e imposta anche l'operazione "I+J". Successivamente, abbiamo definito il metodo principale in cui sono dichiarate due variabili "risultato1" e "risultato2". Queste variabili sono chiamate funzioni "sum1" e "sum2" per passare i valori contro "io" e "j".
L'output ottenuto da entrambe le funzioni "sum1" e "sum2" hanno gli stessi risultati.
Esempio 4: utilizzando una funzione che trasporta
Un metodo in Scala può avere numerosi elenchi di parametri. Una funzione che accetta gli elenchi di argomenti mancanti come argomenti viene prodotto quando viene chiamata una funzione con meno elenchi di parametri di quanto richieda. In altre parole, è un metodo per modificare una funzione che accetta diversi parametri in uno che accetta solo uno.
Qui, abbiamo creato una funzione "Aggiungi" che richiede due argomenti separatamente. La "P" è la prima argomentazione e "Q" è la seconda argomentazione. Quindi, abbiamo dichiarato una variabile "risultato1" nel metodo principale. La variabile "risultato1" è chiamata funzione "Aggiungi" e imposta i valori per "P" e "Q". Inoltre, abbiamo superato il singolo argomento per la funzione "Aggiungi" che viene chiamato nella variabile "AddValues". Gli addValues prendono anche i valori dell'argomento di un numero.
I risultati per il codice precedente al momento della compilation sono i seguenti:
Esempio 5: usando una funzione nidificata
Essendo un linguaggio di funzione di prima classe, Scala consente di passare le funzioni, restituire le funzioni, comporre le funzioni, utilizzare le funzioni nidificate e altro ancora. La definizione e la chiamata delle funzioni nidificate sono dimostrate nel seguente esempio:
All'interno della funzione "sub1", abbiamo definito un'altra funzione "sub2" che valuta la differenza tra "A-B". Al di fuori della funzione sub2, abbiamo chiamato "sub2" che prende il valore dell'argomento "x" e "sub2 (y, z)". Successivamente, abbiamo dichiarato un "risultato" variabile che è chiamato funzione sub1 e ha superato il valore numerico da valutare per diverse operazioni.
Di seguito è riportato il risultato di operazione diverso generato dal codice precedente:
Esempio 6: utilizzando una funzione con parametri di lunghezza variabile
È possibile definire le funzioni con parametri di lunghezza variabile in scala. Qualsiasi quantità di argomenti può essere approvata quando si chiama la funzione.
Alla funzione "Aggiungi", impostiamo la variabile "Mysum" che inizialmente è zero. Quindi, abbiamo per loop che itera sui numeri e incrementi del Mysum. All'interno del principale, abbiamo chiamato la funzione ADD e abbiamo passato i valori numerici ad essa.
La lunghezza della variabile "mysum" è stampata sullo schermo.
Conclusione
Abbiamo scoperto dall'articolo sopra menzionato che l'uso delle funzioni di ordine superiore in Scala può rendere la base di codice semplice e facile da comprendere per le operazioni. Le funzioni di ordine superiore sono quelle che accettano o restituiscono gli input da altre funzioni. Abbiamo anche esaminato gli esempi che dimostrano le varie applicazioni per queste funzioni di ordine superiore. Inoltre, abbiamo imparato a consegnare le funzioni anonime come funzioni di alto ordine.