Groovy - Opzionali
Groovy è un linguaggio digitato "opzionalmente" e questa distinzione è importante quando si comprendono i fondamenti del linguaggio. Rispetto a Java, che è un linguaggio tipizzato "fortemente", per cui il compilatore conosce tutti i tipi per ogni variabile e può comprendere e rispettare i contratti in fase di compilazione. Ciò significa che le chiamate ai metodi possono essere determinate in fase di compilazione.
Quando si scrive codice in Groovy, agli sviluppatori viene data la flessibilità di fornire un tipo o meno. Questo può offrire una certa semplicità nell'implementazione e, se sfruttato correttamente, può servire la tua applicazione in modo robusto e dinamico.
In Groovy, la digitazione facoltativa viene eseguita tramite la parola chiave "def". Di seguito è riportato un esempio dell'utilizzo didef metodo -
class Example {
static void main(String[] args) {
// Example of an Integer using def
def a = 100;
println(a);
// Example of an float using def
def b = 100.10;
println(b);
// Example of an Double using def
def c = 100.101;
println(c);
// Example of an String using def
def d = "HelloWorld";
println(d);
}
}
Dal programma sopra, possiamo vedere che non abbiamo dichiarato le singole variabili come Integer, float, double o string anche se contengono questi tipi di valori.
Quando eseguiamo il programma sopra, otterremo il seguente risultato:
100
100.10
100.101
HelloWorld
La digitazione opzionale può essere un'utilità potente durante lo sviluppo, ma può portare a problemi di manutenibilità durante le fasi successive dello sviluppo quando il codice diventa troppo vasto e complesso.
Per capire come utilizzare la digitazione opzionale in Groovy senza creare un pasticcio irrefrenabile con la base di codice, è meglio abbracciare la filosofia della "digitazione a papera" nelle applicazioni.
Se riscriviamo il codice precedente usando la digitazione a papera, sarebbe simile a quello indicato di seguito. Ai nomi delle variabili vengono assegnati nomi che il più delle volte assomigliano al tipo che rappresentano, il che rende il codice più comprensibile.
class Example {
static void main(String[] args) {
// Example of an Integer using def
def aint = 100;
println(aint);
// Example of an float using def
def bfloat = 100.10;
println(bfloat);
// Example of an Double using def
def cDouble = 100.101;
println(cDouble);
// Example of an String using def
def dString = "HelloWorld";
println(dString);
}
}