Groovy Hướng dẫn viết chữ cho người mới bắt đầu
Một Groovy Kịch bản?
Apache Groovy là một hướng đối tượng và Java ngôn ngữ lập trình tương thích cú pháp được xây dựng cho Java nền tảng. Ngôn ngữ động này có nhiều tính năng tương tự như Python, Ruby, Smalltalk và Pero. Groovy mã nguồn được biên dịch thành Java Bytecode để nó có thể chạy trên mọi nền tảng có cài đặt JRE. Groovy cũng thực hiện rất nhiều nhiệm vụ hậu trường khiến nó trở nên nhanh nhẹn và năng động hơn.
Groovy ngôn ngữ có thể được sử dụng như một ngôn ngữ kịch bản cho Java nền tảng. Nó gần giống như một phiên bản siêu của Java cung cấp nào Javakhả năng của doanh nghiệp. Nó cũng cung cấp nhiều tính năng năng suất như hỗ trợ DSL, đóng và gõ động. Không giống như một số ngôn ngữ khác, nó được thiết kế như một ngôn ngữ đồng hành chứ không phải thay thế cho Java.
Tại sao Groovy?
Sau đây là những lý do chính khiến bạn nên sử dụng và học hỏi Groovy-
- Groovy là một ngôn ngữ linh hoạt và năng động
- Tích hợp liền mạch với tất cả các Java đối tượng và thư viện
- Cảm thấy dễ dàng và tự nhiên Java phát triển
- Mã ngắn gọn và có ý nghĩa hơn so với Java
- Bạn có thể sử dụng nó nhiều hay ít tùy thích với Java ứng dụng
Groovy Lịch Sử
- 2003: Được phát triển bởi Bob McWhirter & James Strachan
- 2004: Được đưa vào JSR 241 nhưng nó đã bị bỏ rơi
- 2005: Được đưa trở lại bởi Jeremy Rayner & Guillaume Laforge
- 2007: Groovy phiên bản 1.0
- 2012: Groovy phiên bản 2
- 2014: Groovy phiên bản 2.3 (hỗ trợ chính thức cho JDK 8)
- 2015: Groovy đã trở thành một dự án tại Phần mềm Apache Foundation
Đặc điểm của Groovy
- Danh sách, bản đồ, phạm vi, biểu thức chính quy
- Đa phương thức và siêu lập trình
- Groovy các lớp và tập lệnh thường được lưu trữ trong các tệp .groovy
- Tập lệnh chứa Groovy các câu lệnh mà không có bất kỳ khai báo lớp nào.
- Các tập lệnh cũng có thể chứa các định nghĩa phương thức bên ngoài các định nghĩa lớp.
- Nó có thể được biên dịch và tích hợp hoàn toàn với truyền thống Java ứng dụng.
- Hỗ trợ cấp độ ngôn ngữ cho bản đồ, danh sách, biểu thức chính quy
- Hỗ trợ đóng cửa, gõ động, giao thức metaobject
- Hỗ trợ gõ tĩnh và động và nạp chồng toán tử
- Khai báo theo nghĩa đen cho danh sách (mảng), bản đồ, phạm vi và biểu thức chính quy
Làm thế nào để cài đặt Groovy
Bước 1) Đảm bảo bạn có Java cài đặt.
Bước 2) Đến phần http://groovy-lang.org/download.html và nhấp vào trình cài đặt.
Lưu ý: Bạn cũng có thể cài đặt Groovy bằng cách sử dụng tệp Zip hoặc dưới dạng Eclipse IDE. Trong Groovy hướng dẫn, chúng tôi sẽ bám sát Windows Cài đặt
Bước 3) Khởi chạy trình cài đặt đã tải xuống. Chọn ngôn ngữ và nhấn OK
Bước 4) Phóng. Trong màn hình chào mừng, nhấp vào TIẾP THEO
Bước 5) Đồng ý với các điều khoản cấp phép
Bước 6) Chọn các thành phần bạn muốn cài đặt và nhấp vào TIẾP THEO
Bước 7) Chọn Thư mục cài đặt và nhấp vào TIẾP THEO
Bước 8) Chọn Thư mục Menu Bắt đầu và nhấp vào TIẾP THEO
Bước 9) Sau khi cài đặt xong, hãy để đường dẫn mặc định và nhấp vào TIẾP THEO
Bước 10) Nhấn tiếp
Bước 11) Trong menu bắt đầu tìm kiếm Groovy An ủi
Groovy Xin chào thế giới Ví dụ
Hãy xem xét chúng tôi muốn in một chuỗi đơn giản “Xin chào thế giới” trong Java. Mã để đạt được chuỗi Groovy xin chào thế giới sẽ như thế này
public class Demo { public static void main(String[] args) { System.out.println("Hello World"); } }
Đoạn mã trên có giá trị trong cả hai Java và Groovy as Groovy là một tập hợp siêu của Java. Nhưng lợi thế với Groovy là chúng ta có thể loại bỏ việc tạo lớp, tạo phương thức công khai, v.v. và đạt được kết quả đầu ra tương tự với một mã dòng duy nhất như sau:
println "Hello World."
Không cần dấu chấm phẩy
Không cần có dấu ngoặc đơn
System.out.println được rút gọn thành println
Groovy Biến
In Java, ràng buộc tĩnh là bắt buộc. Có nghĩa là loại biến phải được khai báo trước.
public class Demo { public static void main(String[] args) { int x = 104; System.out.println(x); //x = "Guru99"; } }
Trong ví dụ trên về điều này Groovy hướng dẫn, kiểu biến (số nguyên) được khai báo trước bằng từ khóa “int”. Nếu bạn khai báo một số dấu phẩy động, bạn sử dụng từ khóa float.
Nếu bạn thử gán giá trị String cho int (bỏ chú thích dòng #5), bạn sẽ nhận được lỗi sau
Demo.java:5: error: incompatible types: String cannot be converted to int x = "Guru99";
Ngược lại, Groovy hỗ trợ gõ động. Các biến được xác định bằng từ khóa “def” và loại biến không cần phải khai báo trước. Trình biên dịch tìm ra loại biến trong thời gian chạy và thậm chí bạn có thể tìm ra loại biến.
Hãy xem xét ví dụ thú vị sau đây,
def x = 104 println x.getClass() x = "Guru99" println x.getClass()
Đầu ra:
class java.lang.Integer class java.lang.String
In Groovy, bạn có thể tạo chuỗi nhiều dòng. Chỉ cần đảm bảo rằng bạn đặt Chuỗi trong dấu ngoặc kép.
def x = """Groovy at Guru99""" println x
Đầu ra:
Groovy at Guru99
Chú thích: Bạn vẫn có thể thay đổi các kiểu như byte, short, int, long, v.v. với Groovy. Nhưng bạn không thể tự động thay đổi loại biến như bạn đã khai báo rõ ràng.
Hãy xem xét đoạn mã sau:
int x = 104 println x x = "Guru99"
Nó đưa ra lỗi sau
104 Caught: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'Guru99' with class 'java.lang.String' to class 'int' org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'Guru99' with class 'java.lang.String' to class 'int' at jdoodle.run(jdoodle.groovy:3) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) Command exited with non-zero status 1
Groovy-Operaxoắn
Toán tử là một ký hiệu yêu cầu trình biên dịch thực hiện một số thao tác toán học hoặc logic nhất định.
Groovy có năm loại toán tử sau đây –
- Các toán tử số học: Cộng (+), Trừ (-), Nhân (*), Chia(/)
- Các toán tử quan hệ: bằng (==), Không bằng (!=), Less hơn (<) Less hơn hoặc bằng (<=), Lớn hơn (>), Lớn hơn hoặc bằng (>=)
- Các toán tử logic: Và (&&), Or(||), Not(!)
- Các toán tử bitwise: And(&), Or(|), (^), Xor hoặc toán tử hoặc loại trừ
- Toán tử gán: Toán tử phủ định (~)
Groovy-Vòng lặp
In Java, bạn sẽ định nghĩa một vòng lặp như sau
public class Demo { public static void main(String[] args) { for (int x = 0; x <= 5; x++) { System.out.println(x); } } }
Đầu ra:
0 1 2 3 4
Bạn có thể đạt được kết quả tương tự trong Groovy sử dụng tối đa từ khóa
0.upto(4) {println "$it"}
Bạn nhận được kết quả đầu ra tương tự như trên. $it là một bao đóng cung cấp giá trị của vòng lặp hiện tại.
Hãy xem xét đoạn mã sau
2.upto(4) {println "$it"}
Nó mang lại một đầu ra
2 3 4
Bạn cũng có thể sử dụng từ khóa “times” để có được kết quả tương tự
5.times{println "$it"}
Hãy xem xét, bạn muốn in 0,2,4 với vòng lặp for Java
public class Demo { public static void main(String[] args) { for (int x = 0; x <= 5; x=x+2) { System.out.println(x); } } }
Đầu ra:
0 2 4
Bạn có thể sử dụng phương pháp bước cho cùng
0.step(7,2){println "$it"}
Groovy- Quyết định
Báo cáo | Deception |
---|---|
nếu Tuyên bố | Như trong Java, câu lệnh if được thực thi nếu điều kiện đúng. |
Câu lệnh if/else | Trong câu lệnh if/other lúc đầu, một điều kiện được đánh giá trong câu lệnh if. Nếu điều kiện đúng thì thực hiện các câu lệnh sau đó. Nó dừng trước điều kiện else và thoát ra khỏi vòng lặp. Tuy nhiên, nếu điều kiện sai thì thực thi các câu lệnh trong khối câu lệnh else. Sau đó nó thoát khỏi vòng lặp. |
Câu lệnh if lồng nhau | Nó được sử dụng khi có yêu cầu phải có nhiều câu lệnh if. |
Tuyên bố chuyển đổi | Câu lệnh if-else lồng nhau có thể không đọc được khi bạn có nhiều điều kiện. Để làm cho mã dễ đọc hơn, câu lệnh switch được sử dụng. |
Tuyên bố chuyển đổi lồng nhau | In Groovy cũng có thể sử dụng các câu lệnh switch lồng nhau. |
Groovy Danh sách
Cấu trúc danh sách cho phép bạn lưu trữ một tập hợp các Mục dữ liệu. trong một Groovy ngôn ngữ lập trình, List giữ một chuỗi các tham chiếu đối tượng. Nó cũng hiển thị một vị trí trong chuỗi. Một List literal được trình bày dưới dạng một chuỗi các đối tượng được phân tách bằng dấu phẩy và được đặt trong dấu ngoặc vuông.
Ví dụ về danh sách Grovy:
Danh sách các Chuỗi- ['Angular', 'Nodejs,]
Danh sách các tham chiếu đối tượng – ['Groovy', 2,4 2.6]
Danh sách các giá trị nguyên – [16, 17, 18, 19]
Một danh sách trống- [ ]
Sau đây là danh sách các phương pháp có sẵn trong Groovy:
Phương pháp | Mô tả |
---|---|
thêm vào() | Cho phép bạn thêm giá trị mới vào cuối Danh sách này. |
chứa đựng() | Trả về true nếu Danh sách này chứa một giá trị nhất định. |
được() | Trả về phần tử ở vị trí xác định |
isEmpty() | Trả về giá trị thực nếu Danh sách không chứa phần tử nào |
dấu trừ() | Lệnh này cho phép bạn tạo Danh sách mới bao gồm các phần tử của bản gốc ngoại trừ những phần tử được chỉ định trong bộ sưu tập. |
thêm() | Cho phép bạn tạo Danh sách mới bao gồm các thành phần của bản gốc cùng với các thành phần được đề cập trong bộ sưu tập. |
pop () | Xóa mục cuối cùng khỏi Danh sách |
tẩy() | Xóa phần tử ở vị trí cụ thể |
đảo ngược() | Tạo Danh sách mới đảo ngược các thành phần của Danh sách ban đầu |
kích thước() | Trả về số phần tử trong Danh sách này |
sắp xếp () | Trả về một bản sao đã được sắp xếp |
Hãy xem xét những điều sau Groovy ví dụ về kịch bản
def y = ["Guru99", "is", "Best", "for", "Groovy"] println y y.add("Learning") println(y.contains("is")) println(y.get(2)) println(y.pop())
Đầu ra:
[Guru99, is, Best, for, Groovy] true Best Learning
Groovy Maps
Bản đồ Groovy là tập hợp các cặp giá trị chính
Ví dụ về Groovy bản đồ:
- [Hướng dẫn: 'Java, Hướng dẫn: 'Groovy] – Tập hợp các cặp khóa-giá trị có Hướng dẫn làm khóa và các giá trị tương ứng của chúng
- [ : ] Đại diện cho một bản đồ trống
Đây là danh sách các phương pháp bản đồ có sẵn trong Groovy.
Phương pháp | Mô tả |
---|---|
chứaKey() | Kiểm tra xem bản đồ có chứa key này hay không? |
được() | Lệnh này tra cứu key trong Map này và trả về giá trị tương ứng. Nếu bạn không tìm thấy bất kỳ mục nào trong Bản đồ này thì nó sẽ trả về giá trị rỗng. |
bộ chìa khoá() | Cho phép tìm một bộ chìa khóa trong Bản đồ này |
đặt() | Liên kết giá trị được chỉ định với khóa đã cho trong Bản đồ này. Nếu Bản đồ trước đó chứa ánh xạ cho khóa này. Khi đó giá trị cũ sẽ được thay thế bằng giá trị được chỉ định. |
kích thước() | Trả về số lượng ánh xạ khóa-giá trị. |
giá trị () | Lệnh này trả về chế độ xem bộ sưu tập các giá trị. |
Groovy Ví dụ:
def y = [fName:'Jen', lName:'Cruise', sex:'F'] print y.get("fName")
Đầu ra
Jen
Groovy- Đóng cửa
Một bao đóng hấp dẫn là một đoạn mã được bao bọc dưới dạng một đối tượng. Nó hoạt động như một phương thức hoặc một chức năng.
Ví dụ về việc đóng cửa đơn giản
def myClosure = { println "My First Closure" } myClosure()
Đầu ra:
My First Closure
Một bao đóng có thể chấp nhận các tham số. Danh sách nhận dạng được phân tách bằng dấu phẩy
một mũi tên (->) đánh dấu sự kết thúc của danh sách tham số.
def myClosure = { a,b,c-> y = a+b+c println y } myClosure(1,2,3)
Đầu ra:
6
Việc đóng cửa có thể trả về một giá trị.
def myClosure = { a,b,c-> return (a+b+c) } println(myClosure(1,2,3))
Đầu ra:
6
Có rất nhiều các bao đóng được tích hợp sẵn như “It”, “identity”, v.v. Các bao đóng có thể lấy các bao đóng khác làm tham số.
Groovy Vs. Java
Groovy | Java |
---|---|
In Groovy, công cụ xác định quyền truy cập mặc định là công khai. Điều đó có nghĩa là một phương thức không có bất kỳ công cụ sửa đổi truy cập nào được chỉ định là công khai và có thể truy cập được bên ngoài ranh giới lớp và gói. | In Java, công cụ sửa đổi truy cập mặc định là một gói, tức là nếu bạn không chỉ định công cụ sửa đổi truy cập cho các trường, phương thức hoặc lớp thì nó sẽ trở thành gói riêng tư, |
Getters và setters được tạo tự động cho các thành viên của lớp. | Java, bạn cần xác định phương thức getters và setters cho các trường |
Groovy cho phép thay thế biến bằng cách sử dụng dấu ngoặc kép với chuỗi. | Java không hỗ trợ thay thế biến. |
Thông tin gõ là tùy chọn. | Thông tin đánh máy là bắt buộc trong Java. |
Groovy không bắt buộc phải kết thúc bằng dấu chấm phẩy. | In Java, mọi câu lệnh đều kết thúc bằng dấu chấm phẩy. |
Groovy tự động là một lớp gói có tên Script cho mọi chương trình | In Java, bạn cần phương thức main để làm cho một lớp có thể thực thi được. |
Huyền thoại về Groovy
Myth | Reality |
---|---|
Chúng ta có thể sử dụng Groovy chỉ để viết kịch bản. | Nó có thể được sử dụng để viết kịch bản. Tuy nhiên, bạn có thể thực hiện nhiều nhiệm vụ khác ngoài nó. |
Groovy tất cả đều là về việc đóng cửa. “Chỉ là ngôn ngữ lập trình chức năng". | Groovy áp dụng từ các ngôn ngữ lập trình chức năng như Lisp hoặc Closure. |
Groovy là một lựa chọn lý tưởng nếu bạn muốn làm TDD | Tuyên bố này là đúng. Tuy nhiên, đó chắc chắn không phải là lý do duy nhất để sử dụng Groovy. |
Bạn có thể sử dụng Groovy chỉ khi bạn muốn sử dụng Grails. | Grails là một framework phát triển web mạnh mẽ.
Nhưng Groovy cung cấp nhiều hơn thế. |
Nhược điểm của việc sử dụng Groovy
- JVM và Groovy thời gian bắt đầu tập lệnh chậm làm hạn chế tập lệnh cấp hệ điều hành
- Groovy không hoàn toàn được chấp nhận ở các cộng đồng khác.
- Nó không thuận tiện để sử dụng Groovy không sử dụng IDE
- Groovy có thể chậm hơn làm tăng thời gian phát triển
- Groovy có thể cần nhiều bộ nhớ
- Kiến thức về Java Là bắt buộc.
Groovy CÔNG CỤ
Chúng ta sẽ thảo luận về 3 công cụ quan trọng trong phần này Groovy hướng dẫn viết kịch bản
1. groovysh: Thực thi mã một cách tương tác.
2. grovyConsole: GUI để thực thi mã tương tác
3. Groovy: Thực thi các tập lệnh hấp dẫn. Bạn có thể sử dụng nó như Perl, Python, Vv
Groovysh
- vỏ dòng lệnh
- Giúp bạn thực hiện Groovy mã tương tác
- Cho phép nhập câu lệnh hoặc toàn bộ tập lệnh
Groovy giao diện điều khiển
- Giao diện Swing hoạt động như một giao diện tối thiểu Groovy biên tập viên phát triển.
- Cho phép bạn tương tác Groovy mã
- Giúp bạn tải và chạy Groovy tập tin kịch bản
Groovy
Đó là bộ xử lý thực thi Groovy chương trình và kịch bản. bạn
Nó có thể được sử dụng để kiểm tra đơn giản Groovy biểu thức.
Tổng kết
- Groovy là ngôn ngữ lập trình hướng đối tượng được sử dụng để Java nền tảng
- Groovy kịch bản cung cấp sự tích hợp liền mạch với tất cả các hiện có Java đối tượng và thư viện
- Bob McWhirter & James Strachan đã phát triển Groovy vào năm 2003
- Danh sách, bản đồ, phạm vi, biểu thức chính quy là những tính năng quan trọng của Groovy
- Bốn loại toán tử được hỗ trợ bởi Groovy là 1. Quan hệ 2. Logic 3. Bitwise 4. Gán
- Groovy thực hiện việc ra quyết định bằng cách sử dụng câu lệnh if, if/else, Nested if, switch, Netsted switch
- Cấu trúc danh sách cho phép bạn lưu trữ một tập hợp các Mục dữ liệu
- Bản đồ Groovy là tập hợp các cặp giá trị chính
- In Groovy, Getters và setters được tạo tự động cho các thành viên của lớp
- In Java, bạn có thể sử dụng phương thức cung cấp getters và setters cho các trường
- Huyền thoại lớn nhất về Groovy là nó chỉ có thể sử dụng cho việc viết kịch bản, điều này không đúng
- Thỉnh thoảng Groovy có thể chậm hơn làm tăng thời gian phát triển
- Ba chậu Groovy Các công cụ bao gồm: groovysh thực thi mã, groovy Console là GUI để thực thi mã tương tác và groovy thực thi các tập lệnh