次のようなクラスが有るとして、
class Song { public String name; public String artist; public String album; public int indexAtAlbum; }
因みに上記で定義されているのはフィールドではなくプロパティで、
こう書くとgroovyではprivateなフィールドとpublicなアクセサができるんですけど、
こう書くとgroovyではprivateなフィールドとpublicなアクセサができるんですけど、
まあ、こいつのリストをアーティスト順、アルバム順、アルバム中の曲順にソートしたいとしましょう。
その場合、こう書きます。
その場合、こう書きます。
songs.sort{[it.artist, it.album, it.indexAtAlbum]};
sortメソッドに、1引数で配列を返すクロージャを渡すと、その配列の先頭から順に比較していく...
ということなんですけど、何よりなんて直感的なコードなんだろうと感動してしまいました。
ということなんですけど、何よりなんて直感的なコードなんだろうと感動してしまいました。