Groovy
環境は、Groovy 1.6.3 で、GroovyConsole で遊んでました。何なんだろ。 Groovy でクラスを宣言しそのインスタンスを生成した後に、クラスのメタクラスからメソッドを変更します。その後に、インスタンスのメタクラスを呼び出したら怒られた。 class Test { …
環境は、Groovy 1.6.3 です。 class Test { void print() { println 'Print' } } def t = new Test() t.print() // print Test.metaClass.print = { println 'Class Custom Print' } t.print() // Print new Test().print() // Class Custom Print
第3回 「Groovyイン・アクション」読書会 IN 関西 で ショートセッションをやります - お だ のスペース でも書きましたが、「仕事でもGroovyを使おう」というタイトルでショートセッションをやらせてもらいました。 内容を簡潔に書くと、「便利さを見せつけ…
JGGUG 第3回 「Groovyイン・アクション」読書会 IN 関西 にて ショートセッションをやらせていただく事になりました。 セッションをやるのは初めてなので、かなり楽しみにしています。 内容は濃い技術的な話しではなく*1、職場でも Groovy を使う/認めてもら…
タイトルの通り Windows Azure で Groovy が動くのか試そうとしました。Azure では、Java が動くらしいのでなら Groovy も動くんじゃね?みたいな軽いノリで。 まず、SDK を入手します。現在の所、.NET Services 用の SDK しか無いようです。(ちなみに、Rub…
println "0..9" def internDigit = [ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' ] ('0'..'9').eachWithIndex { it, index -> println it.is(internDigit[index]) } println "1..9" internDigit = [ '1', '2', '3', '4', '5', '6', '7', '8', '9' ] …
コメントにて紹介して頂いた、次の記事を読んで衝撃を受けました。 インスタンスごとのメタクラスを使っての「電卓を作ろう」2番煎じバージョン - uehaj's blog 「インスタンスごとのメタクラス」の活用法 - uehaj's blog どうも、型だけではなくインスタン…
Java で String(文字列)の比較をする場合、「==」じゃなくて、equals メソッドを使えと言われます。それは、「==」が同一性の比較であって同値性の比較では無いからなんですが、 ここで、下のコードの実行結果ってどうなると思います? System.out.println…
Groovy の場合 equals メソッドを実装していると、「==」演算子は、equals メソッドと同じ動きをする。 equals メソッドを実装している Object で 同一性 を確かめる方法ってないんだろうか?と調べていると、見つかりました。 Object.is メソッドがそうみた…
XML ファイルを書きかえるのに、PowerShell が便利! - お だ のスペース の続き。 コメントにて、Groovy (XmlParser) で XML ファイルを変更する方法を教えて頂いたので調べてみました。 Groovy - Updating XML with XmlParser を見ていると理解出来ないこ…
Groovy (Java)を分かってないだけかもしれませんが、PowerShell の方が便利でした。 こんな データベースの定義を表す xml があった時に、 <Database> <Table name="M001_User" > <Column name="Id" Type="int" Length="0"/> <Column name="Name" Type="nvarchar" Length="50"/> <Column name="Age" Type="int" Length="0"/> </Table> <Table name="M002_Org" > </table></database>
今、「Groovy イン・アクション」の CHAPTER 16 で Grails を紹介しているので、読みながら試しています。 そのなかで webtest プラグインってのが紹介されていたので、試してみました。 どんなテストを行っているのかとかは未だ理解してないんだけど、結果…
Java の .properties ファイルってのを作成するための元データを Excel で管理していて、今までは Excel マクロ を使って .properties ファイルを作成していたんだけど、 ビルドプロセスの一環に組み込む事にしようってことで、Excel マクロだと権限の問題等…
ゲンゾウ用ポストイット: GStringは場合により遅延評価される でも書いてある通りなんですが、こんなコードを書いて大いに誤解してました。 def str = 'test' def gstr = "GString : $str" println gstr // GString : test str = 'test-2' println gstr // G…
読書会の LT の資料と ゲンゾウ用ポストイット: ついにgoogle app engineでGrails動いた!! を参考にしながら、何とか Google App Engine に空の Grails アプリを載せる事が出来ました! が、Grails ってどうやってアプリを作るのかわからね〜。。。Grails …
読書会で、「Groovy イン・アクション」 128 ページ 迄進んだ。 その中でカリー化ってのが出てきたんだけど、いまいち良く分からなかった。 関数の引数を固定して、何回も呼び出すのを楽にするって事?でもそれなら、オーバーロードでいいよね? public void…
第2回 「Groovyイン・アクション」読書会IN関西 開催 参加してきました。 なんやかんやで、Google App Engine に Grails のアプリを載せる事になった。 最近、Groovy すらサボってる(Silverlight ばっかり)し、Grails も GAE も触った事ないや。 とりあえ…
「Groovy イン・アクション」を読んでる。今 93 ページ だ。 リストを使ったクイックソートのサンプルが載ってたので試してみた。(一部改変) P.93 4.10 リストを使ったクイックソート def quickSort(list) { if (list.size() < 2) return list def pivot =…
「Groovy イン・アクション」を読んでる。今 87 ページ だ。 Groovy では、添え字に負の値が使えるんだって。なのでちょっと試してみた。 myList = ['a', 'b', 'c', 'd', 'e'](0..4).each({println ("$it:" + myList[it])}) (-1..-5).each({println ("$it:" …
読書会で一気に進んだので、復習。 ※読書会の内容は、JGGUG 関西支部長の id:kiy0taka:20090426:1240757105 さんがまとめてくれています。 ダブルクォート(")で囲った場合、GString になるらしい。 GString は、変数の値を文字列に埋め込めるので便利そう。 …
「Groovy イン・アクション」読書会IN関西 から今帰ってきました。 何かすげ〜楽しかった、読書会も懇親会も。 モチベーション上がってきた〜。 自分が読んでたとこよりも先に進んでしまったんで、もっと読み進めなきゃ!
「Groovy イン・アクション」を読んでる。今 56 ページ だ。 ここで、演算子のオーバーライドの例が載っている。でダックタイピングって思ったのは、加算演算子がそうなのかなと。 本に載ってたコードの一部抜粋。 class Money { private int amount private…
Groovy で書いたコードをビルドするのに、いつまでも groovyc は面倒だなと思ってビルドツールを使おうと思った。 Ant って何でか使ったことなくて(.NETでは、msbuild を使ってる)また Maven が良いみたいな事を聞いた事があるので、 Maven を使ってみよう…
Groovyイン・アクション まだまだ最初の方だけど、今のところ違和感無く読めてる。しかも結構面白い! 未だ触ったこと無い人は是非触ってみてください。 このページでも少しずつではあるけど、 Groovy にある機能で .NET にも似た様なのがあれば紹介していく…
「Groovy イン・アクション」を読んでる。今 38ページ だ。 ここで、クロージャ というものが紹介されていた。 クロージャって聞いた事あったんだけど、実際どんなんか知らなくて興味津々。 シンプルな例が載ってたんだけど、 [1, 2, 3].each { entry -> pri…
「Groovy イン・アクション」を読んでる。今 33ページ だ。(全然進んでないな…) class Book { private String title public void setTitle(String val) { this.title = val } public String getTitle() { return this.title } } def a = new Book() a.setT…
「Groovy イン・アクション」を読んでる。今 30ページ だ。 ここで、よくわからないコードが載ってた。 assert ('test' * 3 結果は正常に終わる。なんでかわからないので、 println 'test' * 3 を実行した。結果は、 testtesttesthello だった。 'test' * 3 …