ภาษากรูวี (Groovy) เป็นภาษาโปรแกรมเชิงวัตถุสำหรับอันหนึ่ง นอกเหนือจากภาษาจาวา เราอาจมองกรูวีเป็นเหมือนภาษาสคริปต์สำหรับก็ได้ เนื่องจากมันมีคุณลักษณะหลายอย่างเหมือนกับภาษาสคริปต์อย่าง ไพทอน (Python) รูบี้ (Ruby) เพิร์ล (Perl) และ สมอลทอล์ค (Smalltalk). ในบางบริบท, เราจะใช้ชื่อ เพื่อเรียกภาษากรูวี
กระบวนทัศน์ | : object-oriented, , , aspect-oriented, |
---|---|
ผู้พัฒนา | Guillaume Laforge (ประธาน PMC) Jochen Theodorou (หัวหน้าเทคนิค) Paul King Cedric Champeau |
เริ่มเมื่อ | 2003 |
รุ่นทดลอง | 4.0.0-beta-1 / 6 กันยายน 2021 |
ระบบชนิดตัวแปร | , , , |
สัญญาอนุญาต | Apache License 2.0 |
นามสกุลของไฟล์ | .groovy, .gvy, .gy, .gsh |
เว็บไซต์ | groovy-lang |
, | |
ได้รับอิทธิพลจาก | |
Java, Python, Ruby, Smalltalk | |
ส่งอิทธิพลต่อ | |
โปรแกรมที่เขียนด้วยภาษากรูวี จะถูกคอมไพล์ เป็น ซึ่งสามารถใช้งานได้บน (JVM) ปกติ
กรูวี 1.0 ได้รับการเผยแพร่ในวันที่ 2 มกราคม ค.ศ. 2007 จากนั้นจึงเผยแพร่กรูวี 2.0 ในเดือนกรกฎาคม ค.ศ. 2012 โดยรุ่นอัปเดตครั้งใหญ่ครั้งล่าสุดคือรุ่น 2.4 ภายใต้การสนับสนุนของ ที่สิ้นสุดลงในเดือนมีนาคม ค.ศ. 2015
คุณลักษณะของภาษา
ภาษากรูวีมีคุณลักษณะหลายประการที่ไม่พบในภาษาจาวามาตรฐาน:
- และ
- วากยสัมพันธ์สำหรับ list, map, array, และ regular expression
เปรียบเทียบความสัมพันธ์
ตัวอย่างต่อไปนี้จะเปรียบเทียบภาษากรูวีกับภาษาจาวา:
จาวามาตรฐาน (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>
ดูเพิ่ม
- Grails
- - ภาษาโปรแกรมที่มีจุดประสงค์เหมือนกัน แต่ใช้งานบน Common Language Runtime (CLI)
- - ภาษารูบี้บนแพลตฟอร์มจาวา
- Jython - ภาษาไพทอนบนแพลตฟอร์มจาวา
- - ตัวแปลภาษาขนาดเล็กสำหรับโค้ดจาวา
อ้างอิง
- อ้างอิงผิดพลาด: ป้ายระบุ
<ref>
ไม่ถูกต้อง ไม่มีการกำหนดข้อความสำหรับอ้างอิงชื่อgithub-releases
- "Groovy Goodness: Default Groovy Script File Extensions".
- "Groovy 2.4 And Grails 3.0 To Be Last Major Releases Under Pivotal Sponsorship". 19 Jan 2015.
ข้อมูล
- König, Dierk; Paul King; Guillaume Laforge; Hamlet D'Arcy; Cédric Champeau; Erik Pragt; Jon Skeet (2015). Groovy in Action, Second Edition. Manning. ISBN .
- Barclay, Kenneth; John Savage (2007). . ISBN . คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2010-01-12. สืบค้นเมื่อ 2007-07-19.
- Davis, Scott (2008). Groovy Recipes: Greasing the Wheels of Java. ISBN .
- Subramaniam, Venkat (2008). Programming Groovy: Dynamic Productivity for the Java Developer. ISBN .
แหล่งข้อมูลอื่น
- เว็บไซต์ทางการ
- Groovy ที่เว็บไซต์ Curlie
wikipedia, แบบไทย, วิกิพีเดีย, วิกิ หนังสือ, หนังสือ, ห้องสมุด, บทความ, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม, มือถือ, โทรศัพท์, Android, iOS, Apple, โทรศัพท์โมบิล, Samsung, iPhone, Xiomi, Xiaomi, Redmi, Honor, Oppo, Nokia, Sonya, MI, PC, พีซี, web, เว็บ, คอมพิวเตอร์
phasakruwi Groovy epnphasaopraekrmechingwtthusahrbxnhnung nxkehnuxcakphasacawa eraxacmxngkruwiepnehmuxnphasaskhriptsahrbkid enuxngcakmnmikhunlksnahlayxyangehmuxnkbphasaskhriptxyang iphthxn Python rubi Ruby ephirl Perl aela smxlthxlkh Smalltalk inbangbribth eracaichchux ephuxeriykphasakruwikruwikrabwnthsn object oriented aspect oriented phuphthnaGuillaume Laforge prathan PMC Jochen Theodorou hwhnaethkhnikh Paul King Cedric Champeauerimemux2003 21 pithiaelw 2003 runthdlxng4 0 0 beta 1 6 knyayn 2021 2 pikxn 2021 09 06 rabbchnidtwaepr syyaxnuyatApache License 2 0namskulkhxngifl groovy gvy gy gshewbistgroovy lang wbr org idrbxiththiphlcakJava Python Ruby Smalltalksngxiththiphltx opraekrmthiekhiyndwyphasakruwi cathukkhxmiphl epn sungsamarthichnganidbn JVM pkti kruwi 1 0 idrbkarephyaephrinwnthi 2 mkrakhm kh s 2007 caknncungephyaephrkruwi 2 0 ineduxnkrkdakhm kh s 2012 odyrunxpedtkhrngihykhrnglasudkhuxrun 2 4 phayitkarsnbsnunkhxng thisinsudlngineduxnminakhm kh s 2015khunlksnakhxngphasaphasakruwimikhunlksnahlayprakarthiimphbinphasacawamatrthan aela wakysmphnthsahrb list map array aela regular expressionepriybethiybkhwamsmphnth twxyangtxipnicaepriybethiybphasakruwikbphasacawa cawamatrthan Java 5 aelasungkwa class Filter public static void main String args List lt String gt list Arrays asList Rod Carlos Chris List lt String gt shorts new ArrayList lt String gt for String item list if item length lt 4 shorts add item for String item shorts System out println item Groovy list Rod Carlos Chris shorts list findAll it size lt 4 shorts each println it snbsnunphasamarkxp khunlksnaednxnhnungkhxngkruwikkhux karthimnsnbsnunphasamarkxp markup language xyang XML aela HTML cakintwmnexngely khunlksnanithaihkarsrangaelaichngankhxmulcakhlayaehlng epnipidinwakysmphnthkhxngphasaaelawithikarekhiynopraekrmthiehmuxnkn twxyangechn okhd Groovy txipni 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 srangphllphth XML lt workbook gt lt worksheet caption Employees gt lt row fname John lname McDoe gt lt row fname Nancy lname Davolio gt lt worksheet gt lt worksheet caption Products gt lt row name Veeblefeetzer id sku34510 gt lt row name Prune Unit Zappa id sku3a550 gt lt worksheet gt lt workbook gt duephimGrails phasaopraekrmthimicudprasngkhehmuxnkn aetichnganbn Common Language Runtime CLI phasarubibnaephltfxrmcawa Jython phasaiphthxnbnaephltfxrmcawa twaeplphasakhnadelksahrbokhdcawaxangxingxangxingphidphlad payrabu lt ref gt imthuktxng immikarkahndkhxkhwamsahrbxangxingchux github releases Groovy Goodness Default Groovy Script File Extensions Groovy 2 4 And Grails 3 0 To Be Last Major Releases Under Pivotal Sponsorship 19 Jan 2015 khxmul Konig Dierk Paul King Guillaume Laforge Hamlet D Arcy Cedric Champeau Erik Pragt Jon Skeet 2015 Groovy in Action Second Edition Manning ISBN 978 1 935182 44 3 Barclay Kenneth John Savage 2007 ISBN 978 0 12 372507 3 khlngkhxmulekaekbcakaehlngedimemux 2010 01 12 subkhnemux 2007 07 19 Davis Scott 2008 Groovy Recipes Greasing the Wheels of Java ISBN 978 0 9787392 9 4 Subramaniam Venkat 2008 Programming Groovy Dynamic Productivity for the Java Developer ISBN 978 1 934356 09 8 aehlngkhxmulxunewbistthangkar Groovy thiewbist Curlie