Groovy - วิกิพีเดีย

# 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 - ตัวแปลภาษาขนาดเล็กสำหรับโค้ดจาวา

## [แก้] แหล่งข้อมูลอื่น

- เว็บไซต์อย่างเป็นทางการ
- JSR 241
- An introduction to Groovy
- Getting Groovy: 3 Part Groovy Tutorial
- Open Directory: Java: Extensions: Groovy
- Search Groovy

ดึงข้อมูลจาก "http://th.wikipedia.org../../../g/r/o/Groovy.html".

หมวดหมู่: ภาษาโปรแกรม

##### Views

- บทความ
- อภิปราย
- รุ่นปัจจุบัน

##### ค้นหา

##### ภาษาอื่น

- Česky
- Deutsch
- English
- Español
- Français
- 日本語
- 한국어
- Polski
- Português
- Русский
- 中文