Menu
Coddy logo textTech

Funzioni anonime

Fa parte della sezione Logica e flusso del percorso Lua di Coddy. Lezione 13 di 54.

Ora che hai capito che le funzioni possono essere memorizzate in variabili e passate da una parte all’altra, esiste un modo ancora più conciso per scriverle. Invece di dare sempre un nome a una funzione, puoi crearla direttamente dove ti serve. Si chiamano funzioni anonime.

Una funzione anonima è semplicemente una funzione senza nome. La definisci usando la parola chiave function, seguita immediatamente dai suoi parametri e dal corpo:

function(a, b)
    return a + b
end

Questo crea un valore funzione che può essere usato subito. Le funzioni anonime sono particolarmente utili quando si passano funzioni come argomenti ad altre funzioni. Ricordi l’esempio di ordinamento personalizzato di prima? Ecco come appare con una funzione anonima:

local players = {
    {name = "Alice", score = 150},
    {name = "Bob", score = 200},
    {name = "Charlie", score = 175}
}

table.sort(players, function(a, b)
    return a.score > b.score
end)

Invece di definire una funzione con un nome separato per il confronto, la funzione viene creata direttamente come secondo argomento di table.sort(). Questo rende il codice più compatto e mantiene la logica di ordinamento proprio dove viene utilizzata.

challenge icon

Sfida

Facile

Scrivi una funzione filterByThreshold che accetta numbers e threshold e restituisce una nuova tabella contenente solo i numeri maggiori della soglia.

Usa table.insert() con un approccio basato su una funzione anonima per filtrare i numeri. Crea la logica di filtraggio inline senza definire una funzione separata con nome.

Logica:

  • Crea una tabella risultato vuota
  • Scorri la tabella dei numeri
  • Per ogni numero, usa una funzione anonima per verificare se supera la soglia
  • Se il controllo restituisce true, aggiungi il numero alla tabella risultato
  • Restituisci la tabella risultato filtrata

Parametri:

  • numbers (tabella): una tabella in formato lista contenente valori numerici
  • threshold (numero): il valore minimo (escluso) per il filtraggio

Restituisce: una tabella contenente solo i numeri maggiori della soglia (tabella)

Provalo tu

function filterByThreshold(numbers, threshold)
    -- Scrivi il codice qui
end
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Lua online