logo

Thông báo

Icon
Error

Chia sẻ
Tùy chọn
Xem
Xem bài viết cuối
Offline admin  
#1 Đã gửi : 09/03/2015 lúc 10:34:19(UTC)
admin

Danh hiệu: Administration

Chức danh:

Nhóm: Administrators
Gia nhập: 23-07-2013(UTC)
Bài viết: 5,624
Man
Viet Nam
Đến từ: Vietnam

Cảm ơn: 8 lần
Được cảm ơn: 2 lần trong 2 bài viết

Groovy và Java, những điều khác biệt

Một project gồm groovy và java được mở bằng IntelliJ

Groovycách tổ chứcpháp gần giống Ruby

Những điểm khác biệt

 

1. Không sử dụng dấu ;

Nếu các bạn đã từng dùng qua C, C++, C# thì các bạn sẽ thấy là cú pháp của các ngôn ngữ trên bắt buộc sử dụng dấu ; nhắm thông báo cho trình biên dịch là đã kết thúc 1 statement. Với Groovy, điều đó là không bắt buộc nữa. Dĩ nhiênGroovy hổ trợ đến 99% cú pháp của Java nên sẽ rất dễ dàng nếu copy code củaJavachạy trên Groovy.

2. Return không là một keyword bắt buộc

Với Groovy, kết quả của biểu thức cuối cùng được tính toán trong một hàm có thể được trả về mà không cần từ khóa return. điều này làm cho cú pháp được ngắn gọn, dễ đọc, đặc biệt là với các hàm ngắn hoặc closures.

Theo mình thì các bạn nên sử dụng song song việc có return và không có return. Vì đôi khi từ khóa return sẽ làm cho code của bạn dễ đọc hơn.

Các bộ từ khóa lặp, điều kiện cũng có thể áp dụng điều này

3. Def and type

Rất nhiều lập trình viên, lẫn cả chính mình sử dụng từ khóa def. Trong Groovy.def không cần thiết.

Đừng viết:

nhưng:

Khi định nghĩa một phương thức với untype parameters, thay vì viết

Thì bạn nên viết

4. Public by default

Mặc định, Groovy hiểu rằng các classes và methods đều mang modifier là public. Trong trường hợp bạn không muốn method đó hoặc class đó là public, thì bạn nên đặt vào đó một modifer keyword

Thay vì viết:

Nên viết:

Groovy hổ trợ package scope annotation nhằm set một biến chỉ public trong package đó.

Tương tự Ruby. Groovy giúp bạn có thể bỏ các dấu () để đánh dấu parameters

thay vì viết:

nhiêntrong một vài trường hợp. Groovy không cho phép bạn bỏ cặp dấu ngoặc đơn, như ví dụ sau:

Đơn giản vì lúc đó Groovy sẽ dễ dàng nhầm tưởng là foo và 1 cùng là tham số đầu vào của hàm println

5. The .class suffix is not needed

Tiếp vị ngữ .class cho một Class Name không cần nữa. Thay vào đó các bạn sẽ dễ dàng viết

Ví dụ như

Có thể viết thành

6. Getters and Setters

Tương tự như C#, Getter và Setter trong Groovy được gọi là ‘property’ và nó làm cho công việc ghi và đọc một field từ một Object dễ dàng hơn

Trong một Groovy Bean. Thay vì bạn có thể viết:

Bạn có thể viết đơn giản hơn

7. Initializing beans with named parameters and the default constructor

Với một Bean như thế này

Bạn hoàn toàn có thể viết theo phong cách Java như sau.

Nhưng với Groovy bạn có thể viết như sau mà không cần khai báo hàm khởi tạo có tham số

8. Using with() for repeated operations on the same bean

Bạn rất ghét phải gọi tên của một Bean một cách lặp lại liên tục như sau

Bạn có thể viết

9. Equals and ==

Trong Java, bạn không thể so sánh hai Object bằng dấu ==. Với Groovy thì điều này đã có thể

Bằng việc sử dụng phương thức equal() trong Java, bạn có thể sử dụng toán tử == để so sánh. Nó sẽ bao gồm cả việc kiểm tra giá trị null mà Java không làm được.

Thay vì:

Có thể viết

10. GStrings (interpolation, multiline)

Để nối các string với nhau, trong Java sử dụng dấu +, nhưng trong Groovy có thể viết khác đi một cách dễ dàng hơn.

Java

Groovy

hoặc

11. Native syntax for data structures

Groovy hỗ trợ một số hàm khởi tạo cho các cấu trúc dữ liệu như lists, maps, regex…. Nên cố gắng sử dụngtrong các chương trình Groovy của bạn.

Đây là một vài ví dụ:

12. The power of switch

Switch trong Groovy rất thú vị vì các case của nó được mở rộng rất nhiều. Ví dụ

13. Import aliasing

Trong Java. Nếu có 2 class cùng tên. Bạn vẫn có thể import chúng vào code của bạn. Nhưng phải sử dụng fullname của nó khi sử dụng. Groovy đã khắc phục chuyện này bằng việc sử dụng Import aliasing

Bạn cũng có thể import một static method:

14. Groovy Truth

Mọi đối tượng trong Groovy có thể đưa về giá trị kiểu boolean. null, void và empty sẽ bị xem là false còn lại là true.

Thay vì viết

có thể viết

Trong trường hợp bạn muốn tùy biến Groovy Truth, bạn có thể overide hàm asBoolean

15. Safe graph navigation

Trong Java, muốn làm 1 hành động gì đó với một Object, bạn phải check null. VớiGroovy thì nó đã hổ trợ bạn chuyện đó

Với toán tử kiểm tra ?., bạn có thể viết đơn giản.

16. Assert

Để kiểm tra parameters, giá trị trả về… bạn có thể dùng lệnh assert

17. Elvis operator for default values

Trong Java các bạn viết

Nhưng với Groovy

18. Catch any exception

Trong Java, đôi khi bạn phải dùng TryCatch và buộc phải Catch đúng loại exception

với Groovy thì điều này đơn giản hơn

Kết luận

Là một người từng sử dụng Ruby và Java. Mình thấy Groovy có sự pha trộn giữa cả 2 ngôn ngữ. Nó có rất nhiều cái hay và thú vị. Mình học nó vì nó gần gũi với cả Java và Ruby, nó mang sức mạnh của Java và sự tính tế của Ruby, Và nó là ngôn ngữ cho Grails. Một framework mạnh mẽ. Vậy thì tại sao không bắt tay vào thử tìm hiểu nó xem.

Nguồn: http://bit.ly/16BA4zl

Ai đang xem chủ đề này?
OceanSpiders 2.0
Di chuyển  
Bạn không thể tạo chủ đề mới trong diễn đàn này.
Bạn không thể trả lời chủ đề trong diễn đàn này.
Bạn không thể xóa bài của bạn trong diễn đàn này.
Bạn không thể sửa bài của bạn trong diễn đàn này.
Bạn không thể tạo bình chọn trong diễn đàn này.
Bạn không thể bỏ phiếu bình chọn trong diễn đàn này.

Powered by YAF.NET 2.2.3 | YAF.NET © 2003-2018, Yet Another Forum.NET
Thời gian xử lý trang này hết 9.571 giây.