Groovy บทช่วยสอนสคริปต์สำหรับผู้เริ่มต้น
⚡ สรุปอย่างชาญฉลาด
Groovy Script เป็นภาษาเชิงวัตถุสำหรับ Java แพลตฟอร์มที่คอมไพล์เป็นไบต์โค้ด JVM โดยเพิ่มประเภทข้อมูลแบบไดนามิกpingรวมถึงการปิดและไวยากรณ์ที่กระชับเพื่อ Javaและมันให้พลังงาน Jenkins ท่อ, Gradle สร้างและ SoapUI การยืนยัน

อะไรคือ a Groovy สคริปต์?
อาปาเช่ Groovy เป็นภาษาเชิงวัตถุ Java ภาษาโปรแกรมที่เข้ากันได้กับไวยากรณ์ สร้างขึ้นสำหรับ Java แพลตฟอร์ม ภาษาแบบไดนามิกนี้มีคุณสมบัติหลายอย่างที่คล้ายคลึงกับ Pythonรูบี้, สมอลล์ทอล์ค และเพิร์ล Groovy ซอร์สโค้ดถูกคอมไพล์เป็น Java ไบต์โค้ด ดังนั้นจึงสามารถทำงานได้บนทุกแพลตฟอร์มที่รองรับ Java ติดตั้งเครื่องเสมือนเรียบร้อยแล้ว Groovy นอกจากนี้ยังมีการทำงานเบื้องหลังมากมาย ซึ่งทำให้รู้สึกคล่องตัวและมีพลวัตมากกว่าแบบธรรมดา Java.
A Groovy ต้นฉบับ เป็นเพียงแค่ .groovy ไฟล์ที่มีคำสั่งต่างๆ ที่ Groovy โค้ดจะห่อหุ้มด้วยคลาสที่สร้างขึ้นก่อนที่จะรัน นั่นเป็นเหตุผลที่คุณสามารถเรียกใช้ไฟล์บรรทัดเดียวได้โดยไม่ต้องเขียนคลาสหรืออะไรเพิ่มเติม main วิธี Groovy จึงสามารถใช้เป็นภาษาสคริปต์สำหรับ Java แพลตฟอร์มนี้ยังคงนำเสนอความสามารถระดับองค์กรเช่นเดิม Javaนอกจากนี้ยังเพิ่มคุณสมบัติที่ช่วยเพิ่มประสิทธิภาพการทำงาน เช่น การรองรับ DSL การปิด และประเภทข้อมูลแบบไดนามิก (ตัวเลือกเสริม)ping. แตกต่างจากภาษาอื่นๆ บางภาษา มันถูกออกแบบมาเพื่อใช้ควบคู่กับ Javaไม่ใช่สิ่งที่จะมาแทนที่มัน
💡 เคล็ดลับ: Groovy เวอร์ชัน 5.0 เป็นเวอร์ชันเสถียรปัจจุบันและรองรับ JDK 11 ขึ้นไป Groovy เวอร์ชัน 4.0 ยังคงใช้งานได้สำหรับโปรเจกต์ JDK 8 และ Groovy เวอร์ชัน 6.0 ยังอยู่ในช่วงอัลฟ่าสำหรับ JDK 17 โปรดตรวจสอบตารางความต้องการของระบบในหน้าดาวน์โหลดอย่างเป็นทางการก่อนเลือกเวอร์ชันเสมอ
ทำไม Groovy?
นี่คือเหตุผลสำคัญที่คุณควรใช้และเรียนรู้ Groovy:
- Groovy เป็นภาษาที่มีความคล่องตัวและยืดหยุ่นสูง
- สามารถผสานรวมเข้ากับระบบที่มีอยู่ทั้งหมดได้อย่างราบรื่น Java วัตถุและไลบรารี
- รู้สึกว่ามันง่ายและเป็นธรรมชาติ Java นักพัฒนา
- โค้ดนี้กระชับและมีความหมายมากกว่าโค้ดที่เทียบเท่ากัน Java รหัส.
- คุณสามารถใช้มันมากหรือน้อยเท่าที่คุณต้องการภายในได้ Java การใช้งาน
- มันทำงานบนระบบมาตรฐาน Java เครื่องเสมือนดังนั้นจึงไม่จำเป็นต้องมีรันไทม์แยกต่างหาก
Groovy ประวัติขององค์กร
- 2003: เริ่มต้นโดย เจมส์ เอสtracฮันและบ็อบ แม็คWhirตรี
- 2004: ส่งไปที่ Java กระบวนการชุมชนในรูปแบบ JSR 241 ซึ่งต่อมาถูกยกเลิกไป
- 2005: นำกลับมาอีกครั้ง track โดย Jeremy Rayner และ Guillaume Laforge
- 2007: Groovy วางจำหน่ายแล้ว 1.0 ฉบับ
- 2012: Groovy วางจำหน่ายแล้ว 2.0 ฉบับ
- 2014: Groovy เวอร์ชัน 2.3 เปิดตัวพร้อมรองรับ JDK 8 อย่างเป็นทางการ
- 2015: Groovy กลายเป็นโครงการระดับสูงสุดที่ Apache Software Foundation.
- 2022: Groovy เวอร์ชัน 4.0 เปิดตัวแล้ว โดยมีการย้ายพิกัด Maven ไปยัง
org.apache.groovy. - 2025: Groovy เวอร์ชัน 5.0 เปิดตัวสำหรับ JDK 11 ขึ้นไป
คุณสมบัติของ Groovy
- รูปแบบรายการ แผนที่ ช่วง และนิพจน์ปกติ
- มัลติเมธอด (การเรียกใช้เมธอดขณะรันไทม์) และเมตาโปรแกรมมิ่ง
- Groovy คลาสและสคริปต์มักจะถูกจัดเก็บไว้ใน
.groovyไฟล์ - สคริปต์ประกอบด้วย Groovy ข้อความโดยไม่มีการประกาศชั้นเรียนใดๆ
- สคริปต์ยังสามารถมีคำจำกัดความของวิธีการที่อยู่นอกคำจำกัดความของคลาสได้
- Groovy โค้ดสามารถคอมไพล์และผสานรวมเข้ากับระบบแบบดั้งเดิมได้อย่างสมบูรณ์ Java แอพลิเคชัน
- รองรับการใช้งานแผนที่ รายการ และนิพจน์ปกติในระดับภาษา
- การสนับสนุนการปิด, ประเภทแบบไดนามิกpingและโปรโตคอลเมตาออบเจ็กต์
- รองรับทั้งประเภทคงที่และประเภทไดนามิกpingรวมถึงการทำงานหนักเกินไปของผู้ปฏิบัติงานด้วย
- การตรวจสอบประเภทแบบคงที่ (ไม่บังคับ) ผ่านทาง
@TypeCheckedและ@CompileStaticคำอธิบายประกอบ
วิธีการติดตั้ง Groovy
ขั้นตอน 1) รับรองว่ามี Java การติดตั้ง.
ขั้นตอน 2) ไปที่ https://groovy.apache.org/download.html และคลิกที่ Windows ลิงก์ตัวติดตั้ง
หมายเหตุ: คุณยังสามารถติดตั้งได้ Groovy จากไฟล์ Zip ไบนารี ผ่านตัวจัดการแพ็กเกจ เช่น SDKMAN!, Homebrew, Scoop หรือ Chocolatey หรือเป็นปลั๊กอินสำหรับโปรแกรมของคุณ Java IDE. ในการนี้ Groovy เราจะยึดตามคำแนะนำนี้เป็นหลัก Windows ติดตั้ง
ขั้นตอน 3) เปิดโปรแกรมติดตั้งที่ดาวน์โหลดมา เลือกภาษา แล้วคลิก ตกลง
ขั้นตอน 4) บนหน้าจอต้อนรับ ให้คลิก ถัดไป
ขั้นตอน 5) ยอมรับเงื่อนไขของใบอนุญาต
ขั้นตอน 6) เลือกส่วนประกอบที่คุณต้องการติดตั้ง แล้วคลิก ถัดไป
ขั้นตอน 7) เลือกไดเร็กทอรีการติดตั้งแล้วคลิก ถัดไป
ขั้นตอน 8) เลือกโฟลเดอร์เมนูเริ่มต้นแล้วคลิกถัดไป
ขั้นตอน 9) เมื่อการติดตั้งเสร็จสิ้นแล้ว ให้คงค่าเส้นทางไว้ตามค่าเริ่มต้น แล้วคลิกถัดไป
ขั้นตอน 10) ยืนยันตัวเลือกการเชื่อมโยงไฟล์แล้วคลิก ถัดไป
ขั้นตอน 11) ในเมนูเริ่มต้น ให้ค้นหา Groovy เพื่อยืนยันการติดตั้งบนคอนโซล
⚠️คำเตือน: การขอ Windows ตัวติดตั้งนี้เป็นผลงานที่เกิดจากความร่วมมือของชุมชน ไม่ใช่เวอร์ชันอย่างเป็นทางการของ Apache หากองค์กรของคุณต้องการดาวน์โหลด Apache ที่มีลายเซ็นดิจิทัล โปรดใช้ไฟล์ Zip แบบไบนารีและตรวจสอบความถูกต้อง .asc ลายเซ็นและ .sha256 ใช้ค่าตรวจสอบความถูกต้อง (checksum) แทน
Groovy สวัสดีชาวโลก ตัวอย่าง
สมมติว่าคุณต้องการพิมพ์ข้อความง่ายๆ ว่า “Hello World” ใน Javaโค้ดจะมีลักษณะดังนี้
public class Demo {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
Output:
Hello World
โค้ดด้านบนใช้ได้ทั้งสองแบบ Java และ Groovy, เพราะ Groovy ยอมรับเกือบทุกอย่าง Java ไวยากรณ์ ข้อดีของ Groovy ข้อดีคือ คุณสามารถละเว้นการประกาศคลาส เมธอดสาธารณะ และการเรียกใช้ฟังก์ชันพิมพ์แบบเต็มรูปแบบ และได้ผลลัพธ์เดียวกันด้วยบรรทัดเดียว
println "Hello World"
Output:
Hello World
- ไม่จำเป็นต้องใช้เครื่องหมายเซมิโคลอน
- ไม่จำเป็นต้องมีชั้นเรียนหรืออะไรเลย
mainวิธี System.out.printlnจะลดลงเหลือprintln.
Groovy ตัวแปร
In Javaการผูกค่าแบบคงที่ (static binding) เป็นสิ่งที่จำเป็น ซึ่งหมายความว่าต้องประกาศชนิดของตัวแปรไว้ล่วงหน้า
public class Demo {
public static void main(String[] args) {
int x = 104;
System.out.println(x);
//x = "Guru99";
}
}
Output:
104
ในตัวอย่างข้างต้น ประเภทของตัวแปรถูกประกาศไว้ล่วงหน้าโดยใช้คีย์เวิร์ด intหากคุณต้องการประกาศตัวเลขทศนิยม คุณจะต้องใช้คำหลัก `floating point` float or double.
หากคุณพยายามกำหนดค่าสตริงให้กับ int (ลบเครื่องหมายคอมเมนต์ออกจากบรรทัดที่ 5) คุณจะได้รับข้อผิดพลาดในการคอมไพล์ดังต่อไปนี้
Demo.java:5: error: incompatible types: String cannot be converted to int x = "Guru99";
ในทางตรงกันข้าม, Groovy รองรับประเภทข้อมูลแบบไดนามิกpingตัวแปรถูกกำหนดโดยใช้คำหลัก defและไม่จำเป็นต้องประกาศชนิดข้อมูลล่วงหน้า ระบบจะตรวจสอบชนิดข้อมูลของตัวแปรเอง และคุณยังสามารถเปลี่ยนชนิดข้อมูลนั้นได้ในภายหลัง
def x = 104 println x.getClass() x = "Guru99" println x.getClass()
Output:
class java.lang.Integer class java.lang.String
In Groovy คุณสามารถสร้างสตริงหลายบรรทัดได้เช่นกัน เพียงแต่ต้องแน่ใจว่าได้ใส่เครื่องหมายอัญประกาศสามตัวครอบสตริงนั้นไว้
def x = """Groovy at Guru99""" println x
Output:
Groovy at Guru99
หมายเหตุ คุณยังสามารถใช้ประเภทที่ระบุอย่างชัดเจนได้ เช่น byte, short, intและ long in Groovyแต่เมื่อคุณประกาศประเภทอย่างชัดเจนแล้ว คุณจะไม่สามารถเปลี่ยนแปลงประเภทนั้นได้แบบไดนามิก
int x = 104 println x x = "Guru99"
Output:
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)
Command exited with non-zero status 1
Groovy Operaโปร
ตัวดำเนินการ คือ สัญลักษณ์ที่บอกให้คอมไพเลอร์ทำการคำนวณทางคณิตศาสตร์หรือตรรกะเฉพาะอย่างใดอย่างหนึ่ง Groovy รองรับโอเปอเรเตอร์ 5 ตระกูลต่อไปนี้
- ตัวดำเนินการเลขคณิต: เพิ่ม (+), ลบtract (-), คูณ (*), หาร (/), ค่าสัมบูรณ์ (%), เพิ่มค่า (++), ลดค่า (–).
- ตัวดำเนินการเชิงสัมพันธ์: เท่ากับ (==), ไม่เท่ากับ (!=), น้อยกว่า (<), น้อยกว่าหรือเท่ากับ (<=), มากกว่า (>), มากกว่าหรือเท่ากับ (>=)
- ตัวดำเนินการเชิงตรรกะ: และ (&&) หรือ (||) ไม่ใช่ (!)
- ตัวดำเนินการ Bitwise: และ (&), หรือ (|), เอกซ์คลูซีฟออร์ (^), ส่วนเติมเต็ม (~).
- ผู้ดำเนินการมอบหมาย: กำหนด (=) และรูปแบบผสม (+=), (-=), (*=), (/=), (%=)
Groovy เพิ่มตัวดำเนินการบางตัวที่ Java ไม่มี และพวกเขายังตัดโค้ดตรวจสอบค่าว่างที่ซ้ำซ้อนออกไปได้มากอีกด้วย
| OperaTor | Descriptไอออน |
|---|---|
| ?. | การนำทางที่ปลอดภัย ส่งคืนค่า null แทนที่จะโยนข้อยกเว้น NullPointerException เมื่อด้านซ้ายเป็นค่า null |
| ?: | ตัวดำเนินการเอลวิส ส่งคืนค่าด้านซ้ายหากเป็นค่าจริง มิฉะนั้นจะส่งคืนค่าด้านขวา |
| <=> | ตัวดำเนินการยานอวกาศ ทำหน้าที่แทน compareTo และมีประโยชน์ภายในฟังก์ชันเรียงลำดับ (sort closures) |
| ==~ | การจับคู่ด้วย Regex จะส่งคืนค่าจริงก็ต่อเมื่อสตริงทั้งหมดตรงกับรูปแบบที่กำหนดเท่านั้น |
Groovy ลูป
In Javaคุณสามารถกำหนดลูปนับได้ดังนี้
public class Demo {
public static void main(String[] args) {
for (int x = 0; x <= 5; x++) {
System.out.println(x);
}
}
}
Output:
0 1 2 3 4 5
คุณสามารถบรรลุผลลัพธ์เดียวกันได้ Groovy กับ upto วิธีการซึ่งรวมขอบเขตทั้งสองไว้ด้วยกัน
0.upto(5) { println "$it" }
Output:
0 1 2 3 4 5
Here it เป็นพารามิเตอร์โดยปริยายของฟังก์ชันปิด และมันจะเก็บค่าของการวนซ้ำปัจจุบัน พิจารณาโค้ดต่อไปนี้
2.upto(4) { println "$it" }
Output:
2 3 4
นอกจากนี้คุณยังสามารถใช้ times วิธีการนี้จะเริ่มต้นที่ 0 เสมอและหยุดก่อนถึงตัวเลขที่คุณเรียกใช้หนึ่งค่า ดังนั้นคุณต้องใช้ 6 เพื่อพิมพ์ตัวเลขตั้งแต่ 0 ถึง 5
6.times { println "$it" }
Output:
0 1 2 3 4 5
สมมติว่าคุณต้องการพิมพ์ตัวเลข 0, 2 และ 4 ด้วย Java สำหรับห่วง.
public class Demo {
public static void main(String[] args) {
for (int x = 0; x <= 5; x=x+2) {
System.out.println(x);
}
}
}
Output:
0 2 4
คุณสามารถใช้ step วิธีการเดียวกันที่ให้ผลลัพธ์เหมือนกัน โดยอาร์กิวเมนต์ตัวที่สองคือค่าเพิ่มขึ้น และอาร์กิวเมนต์ตัวแรกคือขอบเขตบนที่ไม่รวมค่าเพิ่ม
0.step(5, 2) { println "$it" }
Output:
0 2 4
Groovy การตัดสินใจ
Groovy นำกลับมาใช้ใหม่ Java คำสั่งเงื่อนไขและเพิ่มความยืดหยุ่นมากขึ้น switchตารางด้านล่างนี้สรุปตัวเลือกต่างๆ ไว้
| คำแถลง | Descriptไอออน |
|---|---|
| ถ้าคำสั่ง | เช่นใน Javaโดยส่วนของคำสั่ง if จะถูกดำเนินการเมื่อเงื่อนไขเป็นจริง |
| คำสั่ง if/else | เงื่อนไขในคำสั่ง if จะถูกประเมินก่อน หากเป็นจริง คำสั่งในบล็อก if จะทำงาน และบล็อก else จะถูกข้ามไป หากเป็นเท็จ คำสั่งในบล็อก else จะทำงานแทน |
| คำสั่ง if ซ้อนกัน | ใช้เมื่อคุณต้องการทดสอบเงื่อนไขเพิ่มเติมภายในบล็อก if |
| สลับคำสั่ง | การใช้คำสั่ง if-else ซ้อนกันหลายชั้นจะทำให้เข้าใจยากเมื่อมีเงื่อนไขมากมาย คำสั่ง switch ทำให้ตรรกะเดียวกันนั้นอ่านง่ายขึ้น Groovyป้ายกำกับกรณีสามารถเป็นค่า, คลาส, ช่วง, นิพจน์ปกติ หรือฟังก์ชันปิดได้ |
| คำสั่ง switch ซ้อนกัน | Groovy นอกจากนี้ยังช่วยให้สามารถวางคำสั่ง switch หนึ่งไว้ภายในอีกคำสั่งหนึ่งได้ |
Groovy รายการ
โครงสร้างแบบลิสต์ช่วยให้คุณสามารถจัดเก็บชุดข้อมูลได้ Groovyลิสต์ (List) คือโครงสร้างข้อมูลที่เก็บลำดับของการอ้างอิงถึงวัตถุ และคงตำแหน่งของแต่ละองค์ประกอบในลำดับนั้นไว้ ลิสต์แบบลิเทอรัลเขียนได้เป็นชุดของวัตถุที่คั่นด้วยเครื่องหมายจุลภาคและล้อมรอบด้วยวงเล็บเหลี่ยม
ตัวอย่างของ Groovy รายการ:
- รายการข้อความ:
['Angular', 'Nodejs'] - รายการอ้างอิงวัตถุผสม:
['Groovy', 2, 4, 2.6] - รายการค่าจำนวนเต็ม:
[16, 17, 18, 19] - รายการว่างเปล่า:
[]
เมธอดรายการต่อไปนี้มีให้ใช้งานใน Groovy.
| วิธี | Descriptไอออน |
|---|---|
| เพิ่ม() | เพิ่มค่าใหม่ต่อท้ายรายการ |
| ประกอบด้วย() | ส่งคืนค่าจริงหากลิสต์มีค่าที่กำหนดไว้ |
| รับ () | ส่งคืนองค์ประกอบที่ตำแหน่งที่กำหนด |
| มันว่างเปล่า() | ส่งคืนค่าจริงหากลิสต์ไม่มีองค์ประกอบใดๆ |
| ลบ() | สร้างลิสต์ใหม่ที่ประกอบด้วยองค์ประกอบจากลิสต์เดิม โดยไม่รวมองค์ประกอบที่ระบุไว้ในชุดข้อมูลที่ให้มา |
| บวก() | สร้างลิสต์ใหม่ที่ประกอบด้วยองค์ประกอบจากลิสต์เดิมรวมกับองค์ประกอบในชุดข้อมูลที่กำหนดให้ |
| ป๊อป () | ลบรายการสุดท้ายออกจากรายการและส่งคืนค่าดังกล่าว |
| ลบ () | ลบองค์ประกอบที่ตำแหน่งที่กำหนด |
| ย้อนกลับ () | สร้างลิสต์ใหม่ที่สลับลำดับขององค์ประกอบในลิสต์เดิม |
| ขนาด() | ส่งคืนจำนวนองค์ประกอบในรายการ (List) |
| เรียงลำดับ () | ส่งคืนสำเนาของรายการที่เรียงลำดับแล้ว |
พิจารณาดังต่อไปนี้ Groovy ตัวอย่างสคริปต์
def y = ["Guru99", "is", "Best", "for", "Groovy"] println y y.add("Learning") println(y.contains("is")) println(y.get(2)) println(y.pop())
Output:
[Guru99, is, Best, for, Groovy] true Best Learning
บรรทัดแรกจะพิมพ์รายการห้าองค์ประกอบดั้งเดิมออกมา เนื่องจาก add() ยังไม่ได้ดำเนินการ get(2) คืนค่า “ดีที่สุดตั้งแต่” Groovy รายการต่างๆ จะเริ่มต้นดัชนีที่ศูนย์ และ pop() จะส่งคืนค่า "การเรียนรู้" เนื่องจากรายการดังกล่าวถูกเพิ่มเข้ามาเป็นรายการสุดท้าย
Groovy แผนที่
A Groovy Map คือชุดของคู่คีย์-ค่า คีย์ไม่จำเป็นต้องมีเครื่องหมายคำพูดหากเป็นเพียงตัวระบุธรรมดา ซึ่งทำให้โครงสร้างของ Map กระชับมากยิ่งขึ้น
ตัวอย่างของ Groovy แผนที่:
[tutorial: 'Java', language: 'Groovy']คือชุดของคู่คีย์-ค่าสองคู่[:]แสดงถึงแผนที่ว่างเปล่า
นี่คือรายชื่อวิธีการสร้างแผนที่ที่มีให้เลือกใช้ Groovy.
| วิธี | Descriptไอออน |
|---|---|
| มีคีย์() | ตรวจสอบว่าแผนที่ประกอบด้วยคีย์ที่กำหนดหรือไม่ |
| รับ () | ค้นหาคีย์ในแผนที่และส่งคืนค่าที่ตรงกัน หากไม่พบรายการใด ๆ จะส่งคืนค่าว่าง (null) |
| ชุดคีย์() | ส่งคืนชุดคีย์ในแผนที่ (Map) |
| ใส่() | เชื่อมโยงค่าที่ระบุกับคีย์ที่กำหนด หากแผนที่นั้นมีแผนที่อยู่แล้วping สำหรับคีย์นั้น ค่าเดิมจะถูกแทนที่ด้วยค่าใหม่ |
| ขนาด() | ส่งคืนจำนวนแผนที่คู่คีย์-ค่าpings. |
| ค่า () | ส่งคืน Collection View ของค่าต่างๆ |
Groovy ตัวอย่าง:
def y = [fName:'Jen', lName:'Cruise', sex:'F'] print y.get("fName")
Output:
Jen
Groovy ปิด
A Groovy Closure คือกลุ่มของโค้ดที่ถูกห่อหุ้มไว้ในรูปของอ็อบเจ็กต์ มันทำงานคล้ายกับเมธอดหรือฟังก์ชัน แต่สามารถเก็บไว้ในตัวแปรและส่งต่อได้เหมือนค่าอื่นๆ
ตัวอย่างของการปิดแบบง่าย:
def myClosure = { println "My First Closure" } myClosure()
Output:
My First Closure
ฟังก์ชันปิดสามารถรับพารามิเตอร์ได้ โดยรายการตัวระบุจะคั่นด้วยเครื่องหมายจุลภาค และมีลูกศร (->) กำกับไว้ที่จุดสิ้นสุดของรายการพารามิเตอร์
def myClosure = { a, b, c -> y = a + b + c println y } myClosure(1, 2, 3)
Output:
6
closure สามารถส่งค่ากลับได้เช่นกัน
def myClosure = { a, b, c -> return (a + b + c) } println(myClosure(1, 2, 3))
Output:
6
เมื่อคุณไม่ได้ประกาศรายการพารามิเตอร์ Groovy ระบุพารามิเตอร์แฝงตัวเดียวชื่อ itการปิดสามารถส่งต่อไปยังการปิดอื่นๆ ได้เช่นกัน ซึ่งเป็นวิธีการทำงานของวิธีการเก็บรวบรวมข้อมูลต่างๆ เช่น each, collectและ findAll ทำงาน
Groovy เครื่องมือ
เราจะมาดูเครื่องมือสำคัญสามอย่างที่มาพร้อมกับชุดนี้ Groovy การกระจาย:
- เจ๋งไปเลย: เรียกใช้โค้ดแบบโต้ตอบจากบรรทัดคำสั่ง
- groovyConsole: หน้าต่างกราฟิกสำหรับการเรียกใช้โค้ดแบบโต้ตอบ
- เจ๋งไปเลย: ดำเนินการ Groovy ไฟล์สคริปต์ ในลักษณะเดียวกับการเรียกใช้ไฟล์ Perl หรือ Python ต้นฉบับ
Groovysh
- เชลล์แบบบรรทัดคำสั่ง
- ช่วยให้คุณดำเนินการได้ Groovy เขียนโค้ดแบบโต้ตอบ
- อนุญาตให้คุณป้อนคำสั่งเดี่ยวหรือสคริปต์ทั้งหมดได้
ภาพหน้าจอด้านล่างแสดงให้เห็นว่า Groovysh ประเมินนิพจน์ทีละบรรทัด
Groovy ปลอบใจ
- อินเทอร์เฟซ Swing ที่ทำหน้าที่เป็นแบบขั้นต่ำ Groovy บรรณาธิการพัฒนา
- อนุญาตให้คุณเขียนและเรียกใช้งานได้ Groovy เขียนโค้ดแบบโต้ตอบ
- ช่วยให้คุณโหลดและเรียกใช้งานได้ Groovy ไฟล์สคริปต์
ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร Groovy คอนโซลด้านล่าง สามารถพิมพ์สคริปต์ในช่องด้านบน และผลลัพธ์จะปรากฏในช่องด้านล่าง
Groovy
การขอ groovy คำสั่งคือโปรเซสเซอร์ที่ทำงาน Groovy โปรแกรมและสคริปต์ต่างๆ มันจะคอมไพล์ซอร์สโค้ดเป็นไบต์โค้ดในหน่วยความจำและรันในขั้นตอนเดียว ดังนั้นจึงไม่จำเป็นต้องมีขั้นตอนการสร้างแยกต่างหาก นอกจากนี้ยังสามารถใช้เพื่อทดสอบโปรแกรมง่ายๆ ได้อีกด้วย Groovy นิพจน์ที่ดึงมาจากเทอร์มินัลโดยตรง ดังแสดงด้านล่าง
ที่ไหน Groovy นำไปใช้ในโครงการจริง
นักพัฒนาส่วนใหญ่พบเจอ Groovy ไม่ใช่ในฐานะภาษาเดี่ยวๆ แต่เป็นเลเยอร์การเขียนสคริปต์ภายในเครื่องมือที่พวกเขาใช้งานอยู่แล้ว การรู้ว่ามันปรากฏอยู่ที่ใดทำให้การวางไวยากรณ์ข้างต้นง่ายขึ้นมาก
| เครื่องมือ | สรุป ความน่าเชื่อถือของ Olymp Trade? Groovy ถูกนำมาใช้ |
|---|---|
| Jenkins | ไปป์ไลน์แบบประกาศและแบบสคริปต์เขียนด้วยภาษาโปรแกรมแบบประกาศ Groovy DSL และไลบรารีที่ใช้ร่วมกันนั้นชัดเจน Groovy ชั้นเรียน |
| Gradle | คลาสสิก build.gradle ไฟล์คือไฟล์ Groovy สคริปต์ ซึ่งเป็นเหตุผลว่าทำไมจึงอ่านได้กระชับกว่า Maven POM หรือ an มด ไฟล์สร้าง. |
| SoapUI | Groovy ขั้นตอนสคริปต์และการยืนยันสคริปต์เป็นตัวขับเคลื่อนข้อมูลคำขอแบบไดนามิกและการตรวจสอบการตอบสนองแบบกำหนดเอง |
| สป็อค | A Groovy เฟรมเวิร์กสำหรับการทดสอบที่มีบล็อก given-when-then และตารางข้อมูล ซึ่งใช้กันอย่างแพร่หลายสำหรับการทดสอบหน่วยของ JVM |
| อีสไทรเสิร์ชและเกรลส์ | Grails สร้างเว็บแอปพลิเคชันแบบเต็มรูปแบบบน Groovyและเครื่องมือข้อมูลหลายอย่างยอมรับ Groovy สำหรับการเขียนสคริปต์แบบกำหนดเอง |
In การทดสอบอัตโนมัติ สำหรับทีมต่างๆ เรื่องนี้สำคัญเป็นสองเท่า: งาน CI ที่รันชุดทดสอบและตัวการทดสอบเองอาจมีความสำคัญทั้งคู่ Groovyดังนั้นภาษาเดียวจึงครอบคลุมทั้งการเชื่อมต่อไปป์ไลน์และตรรกะการตรวจสอบ
Groovy vs Java
| Groovy | Java |
|---|---|
| ตัวแก้ไขการเข้าถึงเริ่มต้นคือ public ดังนั้นเมธอดที่ไม่มีตัวแก้ไขจะสามารถเข้าถึงได้จากภายนอกคลาสและแพ็กเกจของมัน | ตัวแก้ไขการเข้าถึงเริ่มต้นคือ package-private ดังนั้นฟิลด์ เมธอด และคลาสที่ไม่มีตัวแก้ไขจะมองเห็นได้เฉพาะภายในแพ็กเกจของมันเท่านั้น |
| เมธอด getter และ setter สำหรับคุณสมบัติของคลาสจะสร้างขึ้นโดยอัตโนมัติ | คุณต้องกำหนดเมธอด getter และ setter สำหรับฟิลด์ด้วยตนเอง |
| Groovy อนุญาตให้แทนที่ตัวแปรภายในสตริงที่อยู่ในเครื่องหมายคำพูดคู่ | Java ไม่รองรับการแทรกค่าสตริง |
| ข้อมูลประเภทสินค้าเป็นตัวเลือกเพิ่มเติม | ข้อมูลประเภทสินค้าจำเป็นต้องระบุ |
| ประโยคไม่จำเป็นต้องจบด้วยเครื่องหมายเซมิโคลอน | ทุกประโยคจะจบด้วยเครื่องหมายเซมิโคลอน |
| Groovy ระบบจะห่อหุ้มสคริปต์ทุกตัวด้วยคลาส Script ที่สร้างขึ้นโดยอัตโนมัติ | คุณต้องมีเมธอด main เพื่อทำให้คลาสสามารถเรียกใช้งานได้ |
ทุกอย่างเป็นสาธารณะและเปลี่ยนแปลงได้ตลอดเวลาโดยค่าเริ่มต้น แต่ @CompileStatic ฟื้น Java- ความเร็วระดับและการตรวจสอบ |
ทุกอย่างได้รับการคอมไพล์แบบคงที่และตรวจสอบในระหว่างการสร้างโปรแกรม |
ตำนานเกี่ยวกับ Groovy
| ตำนาน | ความจริง |
|---|---|
| Groovy ใช้ได้เฉพาะสำหรับการเขียนสคริปต์เท่านั้น | มันยอดเยี่ยมสำหรับการเขียนสคริปต์ แต่ก็สามารถคอมไพล์เป็นคลาสทั่วไปที่คุณสามารถนำไปใช้ในแอปพลิเคชัน JVM ใดก็ได้ |
| Groovy มันเกี่ยวกับฟังก์ชันปิด (closures) เป็นหลัก ดังนั้นมันจึงเป็นภาษาการเขียนโปรแกรมเชิงฟังก์ชันนั่นเอง | Groovy ยืมแนวคิดจากภาษาโปรแกรมเชิงฟังก์ชัน เช่น Lisp และ Clojure แต่โดยพื้นฐานแล้วยังคงเป็นภาษาโปรแกรมเชิงวัตถุ |
| Groovy เหมาะสำหรับใช้ในการพัฒนาแบบทดสอบนำ (Test Driven Development) เท่านั้น | Groovy เหมาะอย่างยิ่งสำหรับการใช้งานร่วมกับ TDD ของ Spock แต่แน่นอนว่านั่นไม่ใช่เหตุผลเดียวในการใช้งาน |
| คุณต้องการเท่านั้น Groovy ถ้าคุณต้องการใช้ Grails | Grails เป็นเฟรมเวิร์กสำหรับการพัฒนาเว็บที่มีประสิทธิภาพ แต่... Gradle, Jenkinsและสป็อคต่างก็ใช้ Groovy ปราศจากมัน. |
ข้อเสียของการใช้ Groovy
- เจวีเอ็ม และ Groovy สคริปต์เริ่มทำงานช้า ซึ่งจำกัดการใช้งานสำหรับการเขียนสคริปต์ระดับระบบปฏิบัติการอย่างรวดเร็ว
- Groovy ยังไม่เป็นที่นิยมใช้กันอย่างแพร่หลายนอกกลุ่มผู้ใช้งาน JVM เป็นหลัก
- ใช้งานไม่สะดวก Groovy หากไม่มี IDE ที่เข้าใจคุณสมบัติแบบไดนามิกของมัน
- การจัดส่งแบบไดนามิกสามารถทำให้ Groovy โค้ดทำงานช้ากว่าโค้ดที่เทียบเท่ากัน Java รหัสเว้นแต่คุณจะสมัคร
@CompileStatic. - Groovy โปรแกรมบางประเภทอาจต้องการหน่วยความจำมากกว่าโปรแกรมทั่วไป Java โปรแกรม
- ความรู้เกี่ยวกับ Java ถือเป็นข้อกำหนดเบื้องต้นอย่างแท้จริง
เมื่อคุณรู้สึกสบายใจกับเรื่องนี้แล้ว Groovy ไวยากรณ์ ขั้นตอนต่อไปตามธรรมชาติคือระบบนิเวศรอบๆ เสริมสร้างรากฐานให้แข็งแกร่งด้วย Java เกี่ยวกับการสอนจากนั้นดูว่าอย่างไร Groovy สคริปต์เป็นตัวขับเคลื่อนการสร้างและการปรับใช้ใน Jenkinsเปรียบเทียบเครื่องมือสร้างกับ Maven และ มดอาปาเช่และสำรวจวิธีการ Groovy ข้อกล่าวอ้างเหล่านั้นสอดคล้องกับ Selenium และชุดทดสอบ API













