10.2.6 Option

An Option is an enum in the Haxe Standard Library which is defined like so:

enum Option<T> {
    Some(v:T);
    None;
}

It can be used in various situations, such as communicating whether or not a method had a valid return and if so, what value is returned:

import haxe.ds.Option;

class Main {
  static public function main() {
    var result = trySomething();
    switch (result) {
      case None:
        trace("Got None");
      case Some(s):
        trace("Got a value: " + s);
    }
  }

  static function trySomething():Option<String> {
    if (Math.random() > 0.5) {
      return None;
    } else {
      return Some("Success");
    }
  }
}