LoginSignup
8
5

More than 5 years have passed since last update.

[Swift] Int型などの値が範囲内に入っているかチェックする

Last updated at Posted at 2017-01-23

駄文です

関数に渡されたInt型などの値が適正範囲内であるかをチェックする時、C言語的な文法に引きずられて

if 0 < number && number < 5 { ... }

などと書いたりしてないでしょうか?
Swiftでは見た目で何をしているかがすぐわかる記法が備わっています。

if (1...4).contains(number) { … }

if 1...4 ~= number { … }

(コメントで皆さんにより簡素でわかりやすい記法を教わりました)

if case 1...4 = number { ... }

誰がどう見ても 1, 2, 3, 4のいずれかですね。
数値が近くに並んであるのがいいです。

不等号の向きを見間違えたり打ち間違えたり、逆を取るときに && を || に変換し忘れたりなどの問題が起こりません。


@lovee さんのコメントも気になって調べて書いてみました。
稚拙だと思うのでGistのリンクだけ。
https://gist.github.com/anonymous/171deb51bfb85f045b22e2b76157cae5


ややこしくするなら

enum Number: Int {
case one = 1
case tow = 2
case three = 3
case four = 4
}

if let _ = Number(rawValue: number) { ... }

ですね!(ダメです)

8
5
8

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
8
5