dephinera
02/02/2021, 11:58 AMwhenlet point = CGPoint(x: 7, y: 0)
switch (point.x, point.y) {
  case (0,0): print("On the origin!")
  case (0,_): print("x=0: on Y-axis!")
  case (_,0): print("y=0: on X-axis!")
  case (let x, let y) where x == y: print("On y=x")
  default: print("Quite a random point here.")
}sealed class A { 
   class X : A()
   class Y : A()
}
sealed class B { 
    class X : B()
    class Y : B()
}...
fun foo(a: A, b: B) = when (a, b) {
    (is A.X, is B.X) -> TODO()
    (is A.Y, is B.Y) -> TODO()   
}...
fun foo(a: A, b: B) = when (a, b) {
    (is A.X or is A.Y, is B.X) -> TODO()
    (is A.Y or is A.X, is B.Y) -> TODO()   
}
// or
fun foo(a: A, b: B) = when (a, b) {
    (is (A.X | is A.Y), is B.X) -> TODO()
    (is (A.Y | is A.X), is B.Y) -> TODO()   
}raulraja
02/02/2021, 12:38 PMA | B