Groovy - 可選型別



Groovy 是一種“可選”型別語言,理解這種區別對於理解該語言的基礎知識至關重要。與 Java(一種“強”型別語言)相比,Java 編譯器知道每個變數的所有型別,並且可以在編譯時理解和遵守約定。這意味著方法呼叫可以在編譯時確定。

在 Groovy 中編寫程式碼時,開發人員可以選擇提供型別或不提供型別。這可以在實現中提供一些簡便性,並且如果正確利用,可以以強大而動態的方式為您的應用程式提供服務。

在 Groovy 中,可選型別是透過 `def` 關鍵字實現的。以下是 `def` 方法用法的示例:

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); 
   } 
} 

從上面的程式可以看出,我們沒有將各個變數宣告為 Integer、float、double 或 string,即使它們包含這些型別的數值。

執行上面的程式,將得到以下結果:

100 
100.10 
100.101
HelloWorld

可選型別在開發過程中可能是一個強大的工具,但在開發的後期階段,當代碼變得過於龐大和複雜時,可能會導致可維護性問題。

為了掌握如何在 Groovy 中使用可選型別而不會使您的程式碼庫變得難以維護,最好在您的應用程式中採用“鴨子型別”的理念。

如果我們使用鴨子型別重寫上面的程式碼,它將如下所示。變數名通常與它們表示的型別相似,這使得程式碼更易於理解。

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); 
   } 
}
廣告