Dopo gli esempi relativi a variabili, costanti, modificatori di accesso (
package,
protected,
public,
public-read,
public-init), comprensivi di interazione tra due file differenti, si rivede poi l'
inferenza del tipo, mostrando come non ci sia bisogno di specificare un tipo di dato se il compilatore può interpretarlo da solo, in base al contenuto, al formato, o alla presenza di apici singoli o doppi: una comodità che presuppone tipizzazione statica e controllo dei tipi a tempo di compilazione.
Restando nei diversi tipi di dato, questi spesso derivano direttamente da Java, il che è perfettamente logico se non banale; c'è poi l'aggiunta di
Duration, il cui uso sarà approfondito in seguito. Va ricordato che i tipi primitivi non possono assumere
null come valore, e che
void vale solo come tipo di ritorno per una funzione. Queste e altre informazioni ed esempi si possono trovare nella
quarta lezione del tutorial JavaFX Script, con un ulteriore rimando al
secondo capitolo della
Language Reference, mentre la ricerca nel
Wiki mi sembra un po' lenta, e sui
tipi di dato restituisce una tabella delle derivazioni Java accompagnata da un
collegamento ipertestuale non aggiornato.
Un altro aspetto importante del linguaggio è costituito dalle
sequenze o
Sequences, che effettivamente occupano una parte importante anche nell'
esposizione da cui siamo partiti; in sintesi, va ricordato che non nidificano, che le modalità di accesso sono per indice o per
slice, praticamente
da...a, che inserimento e cancellazione si possono effettuare per valore o per indice.
Va ricordato inoltre che esse sono immutabili, possono essere vuote, ma non
null, e che esistono alcune particolarità nella gestione di sequenze di numeri, gestibili attraverso costrutti sintetici come
reverse, che inverte l'ordine degli elementi, oppure
for (j in [ 0..<10 step 2 ]) { j } che stampa i numeri da 0 fino a 8. Nel
Wiki troviamo una tabella in cui si
confrontano i pro e i contro di array e
sequence.
Il passaggio successivo consiste nell'approccio alle
classi, che vengono schematicamente suddivise tra quelle
normali, simili a classi Java, e
Mixin; queste ultime assomigliano alle interfacce Java, e non possono essere istanziate direttamente, anche se possono contenere l'implementazione di funzioni e anche dichiarazioni di variabili e relative inizializzazioni.
Come regola generale, una nuova classe deve estendere almeno una superclasse, e può invece estendere un numero arbitrario di classi
mixin.
Questo e altri aspetti sono approfonditi tra l'altro in un
articolo tecnico della scorsa estate sul Sun Developer Network, e in un
capitolo disponibile online del
libro "JavaFX: Developing Rich Internet Applications", di
Jim Clarke,
Jim Connors, ed
Eric J. Bruno.