If the if conditions are becoming longer and complicated. It is possible to separate all the conditions to a list like the following:

var conditions : List<block() : Boolean>= {
  \-> {
    print("1")
    return true
  }, 
  \-> {
    print("2")
    return false
  }
}

The above example is just a simple illustration and not good for actual coding.

The following code snippet is for hunting at least one truth condition using reduce method to do OR logic testing.

if (conditions?.reduce(false, \ ___aggr, ___cond -> ___aggr || ___cond())) {
  print("I'm in")
}

Once a truth condition was identified it stops checking the rest and the if condition is evaluated to true.

The following code snippet is for checking all the conditions are true using the reduce method to do AND logic testing.

if (conditions?.reduce(true, \ ___aggr, ___cond -> ___aggr && ___cond())) {
  print("I'm in")
}

Once a false condition was identified it stops checking the rest and the if condition is evaluated to false.