ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

簡単に値を反転させる方法

あるシステムで、一覧表のタイトルをクリックすると、クリックしたタイトルの列のデータを使って、昇順または降順でソートする機能を作成することになりました。
ソート自体は、データベースの機能を使うので簡単にできます。
次ににクリックしたときに、昇順または降順のどちらでソートするのか、どのように画面で保持すると簡単にできるのか、ちょっと悩みました。
f:id:AJYA:20140716054001j:plain
photo credit: Amaury Henderick via photopin cc

ちょっと悩んだ結果

以下のように決めました。

  • 昇順または降順の2値なので、画面上で保持する値は、昇順を0、降順を1とする。
  • 昇順でソートしたら、次は降順でソートしたいので、0から1を引くと-1になるので、絶対値を求めて降順の1とする。
  • 降順でソートしたら、次は昇順でソートしたいので、1から1を引くと1になるので、絶対値を求めて昇順の0とする。

計算式ではなく、if文で文字列を使って処理することもできますが、今回は数値の方が都合がよかったので、これで予定通りの動作を作ることができました。