LoginSignup
2

More than 5 years have passed since last update.

Swift:「ある数が0以上ならある数、0未満なら0」をスマートに取得する方法

Last updated at Posted at 2018-01-12

はじめに

「ある数が0以上ならある数、0以下なら0」を取得したい時が度々あり、毎回この方法でいいのか?という風に腑に落ちない気持ちでコーディングをしてきました。ようやく腑に落ちる方法にたどり着いたので記します。
今まで使ってきた方法を腑に落ちなかった順に載せます。

1. if文

var a: Int = b  // bはある数
if a < 0 {
    a = 0
}
print(a)

この方法はやってることが大したことないのに4行も消費してしまって嫌だったのを覚えています。

2. 三項演算子

var a: Int = b > 0 ? b : 0  // bはある数
print(a)

この方法は1行で目的の数を取得できるのでマシになったのですが、bと0を二回書いているのが二度手間っぽくて嫌でした。

3. カレント・ベスト・ソリューション

var a: Int = max(b, 0)  // bはある数
print(a)

max()メソッドを用いれば、bと0を一度しか記述せず、目的を達成できることに気づきました。今まで気づかなかったのが馬鹿みたいです。

終わりに

熟練のプログラマの方々からしたら今更というか、あまりに稚拙なことなのですが、自分はこの方法に辿り着くまでに長い時間がかかってしまいました。こういう経験、あったという方はぜひコメントの方にて共有していただけると嬉しいです。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2