2

ドメインの結果を並べ替えるために次のコードを使用しています

vpisort.sort {it.price}

私は私が次のようなものを使うことができるかどうか疑問に思いました

vpisort.sort {it.price-it?.discount}

4

2 に答える 2

5

この投稿を見つけました。あなたのケースでこれを使ってみることができます:

vpisort.sort { a, b -> a.price <=> b.price ?: a?.discount <=> b?.discount }

最初に価格を比較し、次に a と b が価格で等しく、結果がゼロの場合にのみ、Elvis 演算子を使用して a と割引で比較します。

于 2012-04-30T07:12:15.937 に答える
1

うーん。これはグレイルではなく、グルーヴィーな質問です。これを念頭に置いて、解決策は簡単です:

Groovy コンソールを開いて、回線を試してみてください。または、次の例を確認してください。

http://groovy.codehaus.org/JN1015-コレクション

SOに関するこのような別の質問もあります:

最初、2番目、3番目の要素によるGroovy list.sort

それが役立つことを願っています!

更新:ドメイン クラスのデフォルトの並べ替え順序が必要な場合は、次の GORM 機能を参照してください: http://grails.org/doc/latest/guide/single.html#ormdsl (5.5.3 デフォルトの並べ替え順序)

于 2012-04-30T07:11:25.543 に答える