select

LUA

select

<lst>:select(field)

<lst>:select({field1, field2})

<lst>:select(foo(item, pos))

Itera il contenuto della lista ritornando nuovi elementi costruiti dal selettore. Nel primo caso i membri stessi della lista che hanno chiave "field", nel secondo caso i membri della lista che hanno chiave uguale ad uno dei fields nella lista in ingresso. Nell'ultimo caso il valore di ritorno dalla funzione foo che passa in ingresso l'elemento corrente e la posizione corrente nella lista.

Esempio 209. Esempio select

-- ritorna una nuova lista con nome e annoa = XTable({{nome="massimo", cognome="celino", anno=1971},
               {nome="daniele", cognome="piazza", anno=1971},                        
               {nome="oreste", cognome="montanari", anno=1991}})
 :select({"nome", "anno"})
 :astable()
-->{{nome="massimo", anno=1971},
   {nome="daniele", anno=1971},                        
   {nome="oreste", anno=1991}}


Esempio 210. Esempio select

-- ritorna una nuova lista con codice e prezzo totale (qta * pru) a partire da un bom di TOP
b = XTable(bom)                  
 -- codice->[1], qta->[3], pru->[7]
 :select(function(record, i) return {codice=record[1], totprice=record[3]*record[7]}; end)         
 :astable()