A. Dunlop A. Dunlop - 11 months ago 38
Swift Question

If statement taking up too much code, is there a way of simplifying this code?

i have replaced my code with x, y, and z.
At the moment my code runs like this but i have a lot of lines to check x. is there a way of instead of using this

if x != y && x != z

using something like this instead

if x != y,z

sorry everyone I should have explained it better. Here is a piece of the updated code using contains which was very helpful thank you!

if contactCreation.checkAllowed(newContact.contactDetails){

I guess my question was more is there a way to check if x is y and if x is z but not if x is y + z. basically I wanted to call

if x != y && x != z && x != d && != e

without having to get x every-time in one if statement.
so something like this

if x != y && != z && != d && != e

thanks for all the help!

Answer Source

A slightly shorter version is to add an overload to the pattern matching operator (~=):

func ~=<T: Equatable>(pattern: [T], value: T) -> Bool {
    return pattern.contains(value)

if !([y,z] ~= x) {


If that expression looks a little unwieldy and you write it a lot, you can define your own operator:

infix operator !!= : ComparisonPrecedence

func !!=<T: Equatable>(lhs: T, rhs: [T]) -> Bool {
    return !rhs.contains(lhs)

if x !!= [y,z] {