Groovy
このシリーズの一覧はこちら はじめに GroovyにゃGroovyShellっていう便利なクラスがおってのぅ、こいつにevaluatしておくれとお願いすれば、なんとまぁ普通の文字列をGroovyコードとして評価してくれるんじゃ。良い時代になったもんじゃのぅ。と、誰得かわ…
このシリーズの一覧はこちら はじめに GroovyにはJavaの標準API(JDK)を拡張したGroovy JDK(GDK)があります。大量の便利メソッドが追加されており、これを使いこなすだけでも相当のことができるようになります。このシリーズでは毎回1クラスずつ各メソッドの…
はじめに GroovyではExpandoMetaClassの機能を利用してメタプログラミングが可能です。これにより動的にクラスにメソッドを定義できるため豊かなプログラミングスタイルを提供できます。 しかし、GroovyにはRubyのようなincludeキーワードがないため、拡張部…
このシリーズの一覧はこちら はじめに GroovyにはJavaの標準API(JDK)を拡張したGroovy JDK(GDK)があります。大量の便利メソッドが追加されており、これを使いこなすだけでも相当のことができるようになります。このシリーズでは毎回1クラスずつ各メソッドの…
このシリーズの一覧はこちら はじめに GroovyにはJavaの標準API(JDK)を拡張したGroovy JDK(GDK)があります。大量の便利メソッドが追加されており、これを使いこなすだけでも相当のことができるようになります。このシリーズでは毎回1クラスずつ各メソッドの…
このシリーズの一覧はこちら はじめに GroovyにはJavaの標準API(JDK)を拡張したGroovy JDK(GDK)があります。大量の便利メソッドが追加されており、これを使いこなすだけでも相当のことができるようになります。このシリーズでは毎回1クラスずつ各メソッドの…
このシリーズの一覧はこちら はじめに GroovyにはJavaの標準API(JDK)を拡張したGroovy JDK(GDK)があります。大量の便利メソッドが追加されており、これを使いこなすだけでも相当のことができるようになります。このシリーズでは毎回1クラスずつ各メソッドの…
このシリーズの一覧はこちら はじめに GroovyにはJavaの標準API(JDK)を拡張したGroovy JDK(GDK)があります。大量の便利メソッドが追加されており、これを使いこなすだけでも相当のことができるようになります。このシリーズでは毎回1クラスずつ各メソッドの…
はじめに タイトルの通りなんですが、以下のようなコードを実行したときに どうも破壊的に動作するようで… def list = [1, 1, 2, 2, 3, 3] assert list.size() == 6 def newList = list.unique() // 破壊的! assert newList.size() == 3 assert newList == …
はじめに はてなダイアリーのカテゴリ 編集設定 > カテゴリー」のテキストボックスで編集可能。">*1は記事を書く際に新しいカテゴリーを指定した際はどんどん増えてゆくのに、記事を編集してカテゴリー名を変更したり、記事自体を削除してしまったりした場合…
このシリーズの一覧はこちら はじめに 現場で使うマシンは残念ながらWindowsであることが多い。そこで、Groovyスクリプトを書く際のちょっとしたTipsを一つご紹介します。 /文字列/ 表記 Groovyでは正規表現を簡潔に記述するための文字列記述方式として、 /…
このシリーズの一覧はこちら はじめに 現場でよくある作業として、今日の日付フォルダを作る作業があります。よくあるのが以下のようなYYYYMMDD形式。 20110318 これをGroovyでやってみようというお話です。わざわざGroovyでやらなくてもバッチ(Windows)やシ…
はじめに 発端はid:kyon_mmさんが groovyでパラメータでわたってきたkey,valueをそのままxmlのタグ名とバリューにしたいときってどうやるのがいいんだろう。DOMを使うのがいいのかな? #groovy とつぶやいていたところから。(2011-03-19追記) id:kyon_mmさん…
はじめに 最近、これを読んでいてBrainf*ck面白いなーと思っていた矢先、こことかこことかでBrainf*ckをScalaで実装されておられるのを発見しました。そこで私もGroovyで実装してみました。 とりあえずHello! Worldだけ (動作確認: Groovy Version: 1.8.0-rc…
説明 第一引数にファイルへのパスを指定してそのファイルのMD5を取得するコマンドです。 AntBuilderめちゃ便利。 使用例 (自分自身のMD5を取得) $ groovy -v Groovy Version: 1.8.0-rc-1 JVM: 1.6.0_22 $ groovy getMD5.groovy getMD5.groovy 8fcc4f38b1123f…
はじめに クロージャって便利ですよね。私はクロージャと出会ったことで処理とイテレーションの分離の考え方を身に付けることができました。さて、今回はそのクロージャ生成時のパラメータ指定についてです。普段何気なく使ってしまっているクロージャですが…
このシリーズの一覧はこちら はじめに なんと、無いと思っていたタプル(組)がGroovyにもある模様。しかし、実体はListを薄くラッピングしただけのもののよう…せっかく見つけたので一応ご紹介ということで。 (動作確認: Groovy Version: 1.8.0-rc-1 JVM: 1.…
このシリーズの一覧はこちら はじめに 前回は自分でクラスを書いて対応していましたが、Groovyのv1.8からJSONは組み込みでサポートされるようになりました。 Groovy本家より この機能は既にGroovyにあるXMLの生成や読み込みをサポートするMarkupBuilder, Xml…
このシリーズの一覧はこちら はじめに 昨日(2011-02-19)に第2回Scala道場に参加してきたわけですが、コーディング最中に一点はまったことがあったのでメモしておく。 はまった点 まずは、ソースコード*1をご覧下さい。 /* DishOrderSheetTest.scala */ packa…
はじめに Java使いをScalaに引き込むサンプル集 | mwSoft のGroovy版を書いてみました。 記事中に登場するサンプルコードや文章など多くの部分を引用させていただいております。 (動作確認: Groovy Version: 1.7.7 JVM: 1.6.0_22) 前書き Groovyという言語を…
この記事は From Java to Groovy in a few easy steps | Groovy Zone の和訳です。思いっきり意訳です、あしからず。GroovyとJavaは、いとこみたいに近い存在で、構文がとても似ているからJava開発者にとってGroovyを覚えることはとても簡単です。Javaプログ…
Scalaの練習がてら、引数で受け取ったパスのファイルを読み込んで単純Grepするコードを書いていたときの話です。 以下のようなソースコードを書いてみて、ひとまず動くことを確認しようと思っていたのですが、(動作確認: Scala code runner version 2.8.1.fi…
タイトルはまぁあれですが、Groovyって結構ワンライナーで出来ちゃうことが多いよねということで、みんなで97個(+αそれ以上)の一覧を作っちゃいませんか?という企画です。以前jggugで行われていたg100ponみたいな感じでできたらいいなと思ったので、Goog…
GroovyはGroovy++などを使わない場合は静的型チェックしてくれず、よしなに動的型変換をしてくれる。(ということを忘れていてはまったのでメモしておこうと思います。)動作確認: Groovy Version: 1.7.6 JVM: 1.6.0_22 型宣言されてる場合は動的にその型に…
task clean << { println 'cleaning.' } task build << { println 'building.' } build.doLast { println 'finish!' } task local(dependsOn: [clean, build]) << { println 'local debug.' } みたいな感じのファイルを用意してlocalタスクを実行すると $ gr…
GroovyでRFC822形式の日付文字列にDateインスタンスをパースする処理を書こうと思った際のメモ。 ROMEというライブラリを使うと簡単にできるらしい。 サンプルソース 参考 [ヅラド] Java で RFC822 や W3C の日付形式を解析する 参照 Maven Repository: rome…
はじめに サクっとテンプレートエンジンを使いたいなって時、ありますよね。Groovyの場合、GStringがあるから、あらかじめ宣言された変数値を文字列に埋め込むことは簡単なんですが、後からMapにしといてバインドしたい!って用途が実は結構あったりする気が…
はじめに Groovyにはリスト内包表記が無いなぁと思って書いてみた。 ソース(参照) def listComprehension(list, filter, expr) { list.findAll(filter).collect(expr) } println listComprehension( (0..10).toList(), // 0から10までのリストを渡して {it %…
半分くらいネタです。ひょんなことからJavaのコード内でビープ音を鳴らすメソッドを発見したのでメモしておこうかなと。 ソースコードはこんな感じ 10.times { java.awt.Toolkit.getDefaultToolkit().beep() System.sleep(100) } 上のサンプルはGroovyですが…
はじめに id:fitsさんが、こちらにてCSVを処理されているのを拝見しまして、GroovyでCSVを処理する場合、そういえばGroovyCSVがあったなぁと思い出したので使ってみたよという記事です。 こんな感じ サンプルは元記事と同じです。 @Grabが使えるので楽チンで…