Groovy - Opsiyonel
Groovy, "isteğe bağlı olarak" yazılmış bir dildir ve bu ayrım, dilin temellerini anlarken önemli bir noktadır. Derleyicinin her değişken için tüm türleri bildiği ve derleme zamanında sözleşmeleri anlayıp yerine getirebildiği "güçlü" bir dil olan Java ile karşılaştırıldığında. Bu, yöntem çağrılarının derleme zamanında belirlenebileceği anlamına gelir.
Groovy'de kod yazarken, geliştiricilere bir tür sağlama veya vermeme esnekliği verilir. Bu, uygulamada biraz basitlik sunabilir ve uygun şekilde kaldırıldığında uygulamanıza sağlam ve dinamik bir şekilde hizmet verebilir.
Groovy'de isteğe bağlı yazım, 'def' anahtar sözcüğü aracılığıyla yapılır. Aşağıda, kullanımının bir örneği verilmiştir.def yöntem -
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);
}
}
Yukarıdaki programdan, bu tür değerleri içerse bile tek tek değişkenleri Tamsayı, float, double veya string olarak tanımlamadığımızı görebiliriz.
Yukarıdaki programı çalıştırdığımızda şu sonucu alacağız -
100
100.10
100.101
HelloWorld
İsteğe bağlı yazım, geliştirme sırasında güçlü bir yardımcı program olabilir, ancak kodun çok geniş ve karmaşık hale geldiği sonraki geliştirme aşamalarında sürdürülebilirlikte sorunlara yol açabilir.
Groovy'de kod tabanınızı sürdürülemez bir karmaşaya sokmadan isteğe bağlı yazmayı nasıl kullanabileceğinizi anlamak için, uygulamalarınızda "ördek yazma" felsefesini benimsemek en iyisidir.
Yukarıdaki kodu ördek yazarak yeniden yazarsak, aşağıda verilen gibi görünecektir. Değişken adlarına, temsil ettikleri türe benzemeyen ve kodu daha anlaşılır kılan adlardır.
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);
}
}