Groovy
จากวิกิพีเดีย สารานุกรมเสรี
Groovy (กรูวี่) เป็นภาษาโปรแกรมเชิงวัตถุสำหรับแพลตฟอร์มจาวาอันหนึ่ง นอกเหนือจากภาษาจาวา เราอาจมองกรูวี่เป็นเหมือนภาษาสคริปต์สำหรับแพลตฟอร์มจาวาก็ได้ เนื่องจากมันมีคุณลักษณะหลายอย่างเหมือนกับภาษาสคริปต์อย่าง ไพทอน (Python) รูบี้ (Ruby) เพิร์ล (Perl) และ สมอลทอล์ค (Smalltalk). ในบางบริบท, เราจะใช้ชื่อ JSR 241 เพื่อเรียกภาษากรูวี่
โปรแกรมที่เขียนด้วยภาษากรูวี่ จะถูกคอมไพล์ เป็นจาวาไบต์โค้ด ซึ่งสามารถใช้งานได้บนจาวาเวอร์ชวลแมชีน (JVM) ปกติ
ขณะนี้ภาษากรูวี่กำลังอยู่ในช่วงของการทำให้เป็นมาตรฐาน. ภาษากรูวี่รุ่น 1.0 ออกมาเมื่อ 2 มกราคม พ.ศ. 2550
สารบัญ |
[แก้] คุณลักษณะของภาษา
ภาษากรูวี่มีคุณลักษณะหลายประการที่ไม่พบในภาษาจาวามาตรฐาน:
- static typing และ dynamic typing
- ไวยากรณ์สำหรับ list, map, array, และ regular expression
- closure
- operator overloading
[แก้] เปรียบเทียบไวยากรณ์
[แก้] Syntax Comparison
ตัวอย่างต่อไปนี้จะเปรียบเทียบภาษากรูวี่กับภาษาจาวา:
จาวามาตรฐาน (Java 5 และสูงกว่า)
class Filter { public static void main(String[] args) { List<String> list = Arrays.asList("Rod", "Carlos", "Chris"); List<String> shorts = new ArrayList<String>(); for (String item : list) { if (item.length() <= 4) { shorts.add(item); } } for (String item : shorts) { System.out.println(item); } } }
Groovy
list = ["Rod", "Carlos", "Chris"] shorts = list.findAll { it.size() <= 4 } shorts.each { println it }
[แก้] สนับสนุนภาษามาร์กอัป
คุณลักษณะเด่นอันหนึ่งของกรูวี่ก็คือ การที่มันสนับสนุนภาษามาร์กอัป (markup language) อย่าง XML และ HTML จากในตัวมันเองเลย คุณลักษณะนี้ทำให้การสร้างและใช้งานข้อมูลจากหลายแหล่ง เป็นไปได้ในไวยากรณ์ภาษาและวิธีการเขียนโปรแกรมที่เหมือนกัน. ตัวอย่างเช่น:
โค้ด Groovy ต่อไปนี้ ...
import groovy.xml.MarkupBuilder def myXMLDoc = new MarkupBuilder() myXMLDoc.workbook { worksheet(caption:"Employees") { row(fname:"John", lname:"McDoe") row(fname:"Nancy", lname:"Davolio") } worksheet(caption:"Products") { row(name:"Veeblefeetzer", id:"sku34510") row(name:"Prune Unit Zappa", id:"sku3a550") } } println myXMLDoc
... สร้างผลลัพธ์ XML:
<workbook> <worksheet caption='Employees'> <row fname="John" lname="McDoe" /> <row fname="Nancy" lname="Davolio" /> </worksheet> <worksheet caption='Products'> <row name="Veeblefeetzer" id="sku34510" /> <row name="Prune Unit Zappa" id="sku3a550" /> </worksheet> </workbook>
[แก้] อ้างอิง
- Dierk Koenig with Andrew Glover, Paul King, Guillaume Laforge and Jon Skeet. Groovy in Action . Manning, 2006. ISBN 1-932394-84-2.
[แก้] ดูเพิ่ม
- Boo - ภาษาโปรแกรมที่มีจุดประสงค์เหมือนกัน แต่ใช้งานบน Common Language Runtime (CLI)
- JRuby - ภาษารูบี้บนแพลตฟอร์มจาวา
- Jython - ภาษาไพทอนบนแพลตฟอร์มจาวา
- BeanShell - ตัวแปลภาษาขนาดเล็กสำหรับโค้ดจาวา