4

Michael Kimsal cung cấp phần thứ hai của loạt bài này. Lần này anh ta cho thấy các ví dụ hấp dẫn cùng với đối tác PHP của họ, điều này chắc chắn sẽ giúp làm quen với cú pháp.

Sao lưu

Tôi có thể đã đi trước một chút về bản thân mình trong phần 1 , vì nó đã chỉ ra cho tôi rằng tôi đã không giải thích đủ về Grails là gì và tại sao tôi lại quan tâm. Tôi nghĩ tôi đã làm điều đó, nhưng rõ ràng là không đủ, vì vậy đây là một chút nữa

Grails là một khung web cấu hình quá mức tương tự về tinh thần với Ruby on Rails. Một trong những ý tưởng thúc đẩy đằng sau Grails, theo như tôi có thể nói, là đơn giản hóa phần lớn quá trình phát triển web. Các 'quy ước' bao gồm các thực tiễn đặt tên tiêu chuẩn, vị trí tiêu chuẩn cho các tệp chung (tên miền trong thư mục / domain, bộ điều khiển trong / bộ điều khiển, v.v.).

Grails là một khung web Java, nhưng sử dụng ngôn ngữ Groovy cho hầu hết các công việc bẩn thỉu của nó, mặc dù một số mã Grails bên dưới rõ ràng là 'thuần' Java. Groovy chính nó, tốt, một chút Groovy. Nó là một ngôn ngữ kiểu động, và thoát khỏi sự cần thiết của rất nhiều thứ nhảm nhí lặp đi lặp lại khiến mọi người sợ hãi khỏi Java.

Chào thế giới

Chúng ta hãy xem một so sánh mã. Trong Java, tiêu chuẩn thế giới hello hello giống như thế này:

"hellowworld.java"
class helloworld {
   public static void main(String args[]) {
   System.out.println(”Hello World!”);
   }
}

và để chạy nó, trước tiên bạn biên dịch helloworld.java ở trên với javac vào một tệp lớp:

   javac helloworld.java

sau đó chạy tập tin lớp

   java helloworld

Trong Groovy, bạn sẽ tạo một tệp

"hellowworld.groovy"
println “Hello World”

Sau đó thực hiện nó với

   groovy helloworld.groovy

Dễ dàng hơn nhiều, đồng ý? Trông rất giống với cách tiếp cận 'KISS' cũ của PHP:

< ?php echo “Hello World”;?>

điều mà tất cả chúng ta đều biết và yêu thích trong những năm qua. Mặc dù vậy, đừng hiểu sai về tôi, ngôn ngữ Groovy không quá giống với PHP, mặc dù các dấu ngoặc nhọn và dấu chấm phẩy ở đó (thực ra dấu chấm phẩy là tùy chọn).

Ném cho một vòng lặp

Tôi sẽ nhảy vào đây với một số so sánh mã giữa PHP và Groovy, điều này sẽ giúp minh họa một số khác biệt.

PHP
< ?php
   $names = array("Ramesh","Ashish","Keith");
   foreach($names as $name) {
      echo $name."\n";
   }
?>
Groovy
def names = [’Ashish’,'Keith’,'George’]

names.each { println it }

Phương thức 'mỗi' lặp lại qua mảng tên và chuyển dữ liệu đến bao đóng - khối mã bên trong dấu ngoặc nhọn. Các trong việc đóng cửa là một cái tên tự động trao cho các phần dữ liệu hiện đang được lặp lại. Chúng ta có thể đặt tên cho giá trị lặp bên trong bao đóng như vậy:

def names = [’Ashish’,'Keith’,'George’]
names.each { name->
   println name
}

Chúng ta có thể nhận được giá trị vị trí của vị trí chúng ta đang ở trong chỉ mục với một phương thức hơi khác. Thay vì mỗi chúng tôi sử dụng mỗiWith Index .

 
def names = [’Ashish’,'Keith’,'George’]
names.eachWithIndex { name,number->
   println name + ‘ is number ‘ + number
}

Lưu ý 'số' - bộ đếm chỉ mục vị trí - xuất hiện sau tên giá trị lặp. Điều này đã làm tôi khó chịu lúc đầu, vì tôi đã quen với khóa $=> $ val thành ngữ từ vòng lặp trong PHP.

Không có ví dụ nào ở đây có nghĩa là đây là cách duy nhất để lặp trong Groovy. Thật vậy, tiêu chuẩn trong khi các vòng lặp và không có gì đều có sẵn - trang này có thông tin chi tiết hơn nhiều so với tôi có thể đưa ra ở đây. Phần này có nghĩa là để minh họa lặp đi lặp lại với đóng cửa. Tôi sẽ đến để kết thúc chi tiết hơn một chút sau, nhưng có lẽ chúng là một trong những khác biệt chính giữa Groovy và PHP. Như bạn có thể phỏng đoán từ đoạn mã trên, foreachwhile vòng lặp được sử dụng để lặp lại các cấu trúc dữ liệu trong PHP thường không được sử dụng khi lặp qua các cấu trúc dữ liệu trong Groovy - thường được xử lý trong các bao đóng.

|