Javaを知っていますか? Groovyに注意してください!

動的型付け言語(DTY)について話している場合、まず最初に思い浮かぶのは何ですか。 私はあなたがRuby、Python、またはPerlのStyxの周りに浮かんでいるものを呼ぶに違いない。 しかし、赤ちゃんのGroovyはどうですか?! 彼の名前はさまざまな紛争でときどき現れますが、彼はまだ広く知られていません。 そして私の意見では無駄です!



少し離れてみましょう。 ほとんどの読者は、専門家がツールキットにDTIの1つを含める必要があることに同意すると思います。 動的に型付けされた言語の長所と短所は一般に他のソースで十分にカバーされているので、時間とあなたの時間を無駄にしません。



そこで、動的型付けの有用性を認識したとしましょう。 しかし、どの言語が望ましいですか? この分野では、前述のPythonとRubyが間違いなく主流であり、それらをよく知っていれば、多くの敬意を払っています。 ;)ただし、それらをすべて尊重して、使用を開始するのがはるかに簡単な言語があります(特にJavaを知っている場合)。 Groovyに挨拶してください!



私はHabréに関する長く退屈なチュートリアルの支持者ではないことをすぐに言わなければなりません。したがって、Groovy構文の詳細な説明については、 元のソースを参照してください。 独学の伝道者として、私はその魅力のいくつかに注目しています。



Groovy構文はJava構文の拡張機能であり、その基本型はJDKの構文と完全に一貫しており、Javaライブラリと透過的に統合されます。 実際、Javaプログラムは多くの場合、Groovyの観点から完全に有効です。 これはどういう意味ですか? もちろん、最低入場基準値! 私の意見では、これはGroovyの主な利点です。というのも、新しいライブラリのために「構文の反射」や広範なマニュアルを壊す必要がないからです。 おなじみのトリックを使用して、できる限り書くだけで、最終的にはより多くの効果的なデザインを発見できます。



ところで、Groovyは、その動的な機能のおかげで、JDKの使い慣れたクラスに便利なメソッドをすぐに追加できます。 例: "123".isInteger()



またはnew File("myFile.txt").getText()



独自のメソッドを追加することをnew File("myFile.txt").getText()



ものはありません。



Groovyには、少なくともRuby / Pythonレベルにそれをもたらす他の多くの利点があります:クロージャ、言語レベルでのリストとマップのサポート、正規表現の組み込みサポート、文字列内の式のサポート( "Value = $ value")、プロパティの自動作成、 「?。」演算子を使用した安全なナビゲーション (neverNullExceptionHere?.a?.b?.c)、メタクラス、ビルダー、お気に入りのGroovyテンプレートなど。

このすべてがあなたにとって空の言葉のままにならないように、私はあなたが反映できるGroovyコードの短い例を与えます(私はグッズを使用します、したがってJavaスタイルではありません;):



new File(".").eachFileRecurse { file ->

if (file.isFile() && file.readLines().find { line -> line ==~ /Delete\s*this\s*file/ }) {

println "Deleting file: $file"

file.delete()

}

}









そのため、Groovyは言語の豊富さにおいてRubyやPythonに劣りませんが、Javaとの統合のしやすさや最小限の入力しきい値という点で、RubyやPythonよりも優れています。 試してみてください!



PS興味があれば、Grails / GORMについて説教することができます。



All Articles