[swift-users] pattern matching in if improvement?

Maury Markowitz maury.markowitz at gmail.com
Sat Mar 26 16:47:23 CDT 2016

Before I stick my head into the other list, consider:

   if statusCode >= 200 && statusCode <= 299

I'm sure examples of something like this occur throughout your code. But the actual semantics of the test is hidden here, you're really testing if statusCode lies within a range. Swift 2.0 has a couple of options for this, but I find them all rather odd. The most recommended is:

   if case 0...100 = someInteger

This syntax has problems. For one thing, it's written backwards compared to most people's code...

   if someinteger == 100


   if 100 == someinteger

so it just *feels* wrong. In addition, the use of "case" seems odd too. And finally, there's the use of the single equals sign in a test, which goes against everything we've learned in C-like languages.

So unless I'm missing something, can anyone offer a reason this wouldn't work?

  if someinteger in 0...100

More information about the swift-users mailing list