Gli operatori sono in pratica gli stessi di java/c++, con qualche piccola variazione per far diventar matto il programmatore, vediamoceli rapidamente.
Per l'assegnamento si usa un'uguale (=)
result = num1 + num2;
Gli operatori aritmetici sono +, -, *, /, mod:
result = 10 mod 7; // 10 / 7 = 1 col resto di 3, dunque result sarà 3.
E' possibile combinare gli operatori aritmetici con l'assegnamento, con l'eccezione del modulo:
result += 1; // equivalente a result = result + 1;
Gli operatori unari sono -, --, ++, not (negazione booleana)
var success = false;
println(success); // false
println(not success); // true
Non ci sono sorpese negli operatori di uguaglianza e relazione: ==, !=, >, >=, <, <= Mentre gli operatori condizionali sono and, or Anche l'operatore per il confronto dei tipi é una vecchia conoscenza (per chi conosca java, si intende): instanceof
Espressioni
Un blocco é, a tutti gli effetti, equivalente a una funzione inline: circondato da parentesi graffe, "ritorna" il valore dell'ultima espressione inclusa. Se non c'é alcuna espressione inclusa, il blocco é di tipo Void
var nums = [5, 7, 3, 9];
var total = {
var sum = 0;
for (a in nums) {
sum += a
};
sum;
}
println("Total is {total}."); // 24
Il flusso condizionale di esecuzione é solitamente implementato usando la solita struttura if - else if - else:
if (age < ticketprice =" 0;"> 65) {
ticketPrice = 5;
}
else {
ticketPrice = 10;
}
Ma in javaFX é disponibile anche questa scorciatoia che appare molto concisa ed elegante:
ticketPrice = if (age <> 65) 5 else 10;
Le sequenze, che aevamo visto qui, sono, parlando tecnicamente, delle espressioni di ambito (in inglese: range) di cui é possibile specificare la distanza tra i vari elementi usando la parola chiave step:
var odds = [1..10 step 2];
var down = [10..1 step -1];
I loop su una sequenza sono implementati elegantemente con un for, iterando sugli elementi:
var days = ["Mon","Tue","Wed","Thu","Fri","Sat","Sun"];
for (day in days) {
println(day);
}
Nota che la variabile day é generata al volo dal compilatore per esistere solo per la durata del ciclo for.
Il ciclo while ha invece una costruzione più tradizionale:
var count = 0;
while (count < count ="=">
Per modificare il flusso di esecuzione all'interno di un ciclo sono disponibili le espressioni continue e break:
for (i in [0..10]) {
if (i > 5) {
break;
}
if (i mod 2 == 0) {
continue;
}
println(i);
}
La gestione delle eccezioni avviene secondo lo schema stabilito dalle espressioni throw (per lanciarla) catch (per gestirla) finally (per specificare cosa fare in ogni caso, dopo aver gestito l'eccezione, o se non c'é stata eccezione)
...
if(somethingWeird) {
throw new Exception("Something weird just happened!");
}
...
try {
foo();
}
catch (e: Exception) {
println("{e.getMessage()} (but we caught it)");
}
finally {
println("We are now in the finally expression...");
}
Nessun commento:
Posta un commento