Groovy
はじめに 本日参加してきたGrailsドキュメント会にて紹介されていたConfigSlurperをちょっと調べてみたらめっちゃ便利だったのでメモしておきます。*1 で、ConfigSlurperって何? 簡単に説明すると、groovyファイルで各種設定系定義を書いておいて使いましょ…
Gradle楽しいですね! ちょっと現在、環境的にMaven中央リポジトリが使えないので、GroovyプロジェクトをMaven中央リポジトリなしで使えるような構造を作ってみたのでメモしておきます。 置き場所 Githubにコミットしてありますので、こちらからどうぞ。 な…
Javaのコレクションを取得してそれをScalaのコレクションに変換する方法ではまったのでちょっとメモ。 scala.collection.JavaConversions.asBuffer(/* ここにJavaのコレクション */) としたらうまく行きました。微妙に面倒くさいですね。 考察 そう考えてみ…
はじめに (10..1e4).grep(~(9..0).sum{"$it?"}).any''.&println anarchy golf - the source code を見ていたら見つけたのですが、Groovyってクロージャを引数として期待しているメソッドにクロージャインスタンスを渡した場合は自動でうまい感じに動くんです…
やってみた お題の内容 問題 output all the numbers from 3 to 100 without perfect square. (3から100の数値のうち平方数を除くものを出力せよ。) 期待値 [3, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30,…
はじめに GroovyはほにゃららBuilderが充実していますが、ちょっとだけ不満点を挙げるとしたらそれはコードに直接埋め込まなければいけないことではないだろうか。 new HogeBuilder().aaa { bbb (ccc: 'ddd') { eee() { . . . } } } こんな感じに。 そこで …
はじめに 文字列をevalする例です。 ソース (動作確認: Groovy Version: 1.7.5 JVM: 1.6.0_20) 解説 BindingはmapをasすればOKみたい。便利ですね。 上記例でinfoとなっているところを外部ファイルから読み込んだりすれば夢が広がります。 2011-03-27追記 評…
はじめに v1.7.3からString#stripMarginが追加されたので、先頭にパイプ('|')など*1を指定することで揃えることができるようになりました。 '''|aaa |bbb |ccc'''.stripMargin() みたいな感じで書くと aaa bbb ccc といった感じになります。 まぁ、これはこ…
はじめに もう、追加したんなら言ってよぉ〜(笑) ということで、v1.7.3から追加されてたみたいです。前に自分でtrコマンドを書いたりしてたんですが標準サポートされるなんて嬉しい限り。ということで早速使ってみた。 ソース (動作確認: Groovy Version: …
これは… id:orangecloverさんが Groovyでdef関数からdef関数が呼び出せないのか? - みちしるべ でいろいろと困っているようだったんですが、この症状は私もなったことがある。 groovyshでdefを使うとスコープが(たぶん)その行だけになる $ groovysh Groovy …
はじめに 最近関数型言語をよく目にする機会が増えたので、Groovyでは#inject(左畳み込み)はあるけど、そういえば右畳み込みがないんじゃない?と思ってCollectionを拡張してみました。 ソース (動作確認: Groovy Version: 1.7.5 JVM: 1.6.0_20) 解説 metacl…
はじめに ちとタイトル分かりにくいですが、せっかく書いたので投稿しておく。 ソース (動作確認: Groovy Version: 1.7.5 JVM: 1.6.0_20) 解説 動的に作った文字列でメソッド呼べるよね〜っていうサンプルでした。
はじめに ライフゲームをなんとなくGroovyで書いてみました。 ソース (動作確認: Groovy Version: 1.7.5 JVM: 1.6.0_20) スクリーンショット グライダー(初期状態) shape.txtをいじった状態 実行方法 >groovy lifegame.groovy 操作方法など エラー処理などさ…
♪右から、右から、カレー化しちゃ〜う〜 ええ、ちょっと古いネタでした。いつのまにやらGroovyのClosureメソッドで#rcurryやら#ncurryやらできるようになってました。*1 軽い説明 メソッド 説明 #curry 普通のカリー化(左から) #rcurry 右からカリー化 #ncur…
はじめに クロージャ(groovy.lang.Closure)を引数にとって、途中の処理を委譲するようなメソッドを定義し、呼び出し時にブロックのように呼び出すことはGroovyでは普通に行われます。 ただ、通常では#callメソッドに渡す引数がクロージャ内で -> の前に列挙…
はじめに なんとなく書いてみた。せっかくなので公開。 ソース (動作確認: Groovy Version: 1.7.5 JVM: 1.6.0_20) ちなみに 気が向いたらもっとチェックメソッドを増やしていこうと思う。気が向いたらね。 参考 idにアルファベットの重複がある人集まれ! - …
はじめに こちらにて、java.text.Collatorの使い方が示されていた。 知らなかったんですが、このCollatorというクラスはソートで使うらしく、通常のソートではUnicode順になってしまうところを良きに計らってくれるようです。 ソース (動作確認: Groovy Vers…
このシリーズの一覧はこちら はじめに JSONとGroovyのマップは非常に形式が似ている。 違っているのはJSONの方はマップに {} を利用するのに対して Groovyは を使う点くらいだ。 ということで、{} を することでJSONをGroovyObject*1に変換するクラスを書い…
最近購入したMacでGroovyConsoleを利用していた時のこと。 以前まで使っていたWindowsの感覚でバックスラッシュを入力してしまっていてハマったのでメモ。*1Windowsだとキーボードの一番右上にある「¥」のキーを押すことでバックスラッシュを入力できますが…
Mac(Mac OS X 10.6.4)のターミナルからgroovyを実行しようとすると、エンコードの指定がうまくいっていないのか、文字化けしてしまって起動できなかった。 根本的な解決法は他に在りそうだけど、ひとまずエイリアスを作ってUTF-8にエンコードを固定するよう…
お題: Server error 投稿: Server error こんな感じになりました 動作確認はGroovy Version: 1.7.3 JVM: 1.6.0_20にて。 考察 ソートする際に数値と数値でない部分に分けて、数値のところは数値でソートするような形で実装してみました。 関連記事にも挙げま…
この記事はGroovy基礎文法最速マスター | Think Twiceへ移管しました。
はじめに GroovyではAntBuilderやGantといったAntを利用する上でとても強力な拡張が存在しますが、もうちょっとシンプルにAntスクリプト内からGroovyを利用する方法もあるのでそのご紹介です。 使い方 Seeing is believing!! ということで、サンプルをば。 (…
このシリーズの一覧はこちら はじめに 前回の記事の続き。iPad発売記念日ですがこんな記事を書いてます(笑) IvyリポジトリをWeb上に公開したい まだわかっていないことも多いのですが、ちょこちょこ調べていった結果ivy.xml的なものを宣言して、あとは とい…
このシリーズの一覧はこちら はじめに Groovyの@GrapeはIvyを使っているらしい。IvyとかMavenとかよくわかっていなかったんですが、これを機に勉強を開始したところです。*1で、いろいろ探ってみるとどうも日本語の情報があまり見当たらない*2…長期戦になり…
id:nazokingさんが、java使いのためのScala の勉強のための資料作り scalaって素晴らしい いろいろ1 - nazonoDiaryという記事を書いていた。 ここでは、Scalaで書くとJavaよりも簡潔に書けるよとのことで紹介されているのですが、比較対象にGroovyが入ってお…
id:nidouchiさんのところ(http://d.hatena.ne.jp/nidouchi/20090904/p1)にて切符問題というものが取り上げられていたので、私も解いてみた。 いくつかの正の整数と加算・減算・乗算 の3つの演算子(そして、括弧)を使って、ある別の正の整数を生成する方法…
よく利用する機能なのでメモ。 基本的にはJavaのコードを同じなので、ちょっとだけ#with(Input|Output)Streamとか使ってGroovyっぽくしてみました。 (動作確認: Groovy Version: 1.7.2 JVM: 1.6.0_20) XML形式で書き込み 上記スクリプトを実行するとルートデ…
前回のどう書く?org投稿から約1年ぶりくらいで、久々に投稿してみました。お題: Server error 投稿: Server error こんな感じになりました def data = [ ['東京都', '区部', '千代田区', 'object1'], ['東京都', '区部', '中央区', 'object2'], ['東京都', …
はじめに ちょっとタイトルがまどろっこしいですが、要するにexecutable-jarをAntBuilderを利用して作っちゃいましょうという話題です。これは便利!これでGroovyスクリプトの配布が楽になるかも。 とても簡単にGroovyスクリプトを配布可能&実行可能なjarに…