次のようなクラスが有るとして、
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引数で配列を返すクロージャを渡すと、その配列の先頭から順に比較していく...
ということなんですけど、何よりなんて直感的なコードなんだろうと感動してしまいました。
ということなんですけど、何よりなんて直感的なコードなんだろうと感動してしまいました。