6.4.7 Guards

It is also possible to further restrict patterns with the case ... if(condition): syntax:

    var myArray = [7, 6];
    var s = switch(myArray) {
      case [a, b] if (b > a):
        b + ">" +a;
      case [a, b]:
        b + "<=" +a;
      case _: "found something else";
    trace(s); // 6<=7

The first case has an additional guard condition if (b > a). It will only be selected if that condition holds, otherwise matching continues with the next case.

Take the Haxe Survey!