Groovy - Tùy chọn

Groovy là một ngôn ngữ được gõ "tùy chọn" và sự khác biệt đó là một điều quan trọng khi hiểu các nguyên tắc cơ bản của ngôn ngữ. Khi so sánh với Java, là một ngôn ngữ được đánh máy “mạnh mẽ”, theo đó trình biên dịch biết tất cả các kiểu cho mọi biến và có thể hiểu và tuân theo các hợp đồng tại thời điểm biên dịch. Điều này có nghĩa là các cuộc gọi phương thức có thể được xác định tại thời điểm biên dịch.

Khi viết mã trong Groovy, các nhà phát triển có thể linh hoạt cung cấp loại hoặc không. Điều này có thể cung cấp một số đơn giản trong việc triển khai và, khi được tận dụng đúng cách, có thể phục vụ ứng dụng của bạn một cách mạnh mẽ và năng động.

Trong Groovy, việc nhập tùy chọn được thực hiện thông qua từ khóa 'def'. Sau đây là một ví dụ về việc sử dụngdef phương pháp -

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

Từ chương trình trên, chúng ta có thể thấy rằng chúng ta đã không khai báo các biến riêng lẻ là Integer, float, double, hoặc string mặc dù chúng chứa các loại giá trị này.

Khi chúng ta chạy chương trình trên, chúng ta sẽ nhận được kết quả sau:

100 
100.10 
100.101
HelloWorld

Nhập tùy chọn có thể là một tiện ích mạnh mẽ trong quá trình phát triển, nhưng có thể dẫn đến các vấn đề về khả năng bảo trì trong giai đoạn phát triển sau này khi mã trở nên quá rộng và phức tạp.

Để nắm rõ cách bạn có thể sử dụng tính năng nhập tùy chọn trong Groovy mà không làm cho cơ sở mã của bạn rơi vào một mớ hỗn độn không thể giải thích được, tốt nhất là bạn nên nắm lấy triết lý “gõ vịt” trong các ứng dụng của mình.

Nếu chúng ta viết lại đoạn mã trên bằng cách gõ vịt, nó sẽ giống như đoạn mã được đưa ra bên dưới. Các tên biến là những tên thường giống với loại mà chúng đại diện hơn, điều này làm cho mã dễ hiểu hơn.

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