kyleect / locks

A toy language branched from Lox to learn language implementation and tooling. Forked from loxcraft
https://kyleect.github.io/locks/#/docs
MIT License
0 stars 0 forks source link

Enums #39

Open kyleect opened 8 months ago

kyleect commented 8 months ago
enum Option {
  Ok(value),
  None
}

var ok = Ok("Hello");

match ok {
  Ok(value) => {
    print value;
  },
  None => {
    print "No value!";
  }
}

print ok; // out: Ok("Hello")
print ok::value // out: "Hello"

var none = None;
print none::value;
// out: TypeError: Value has no field called "value"
// out: print none::value;
// out: ^^^^^^^^^^^^^

// With Types
enum Option<T> {
  Ok(T value),
  None
}

var ok = Ok("Hello");

match ok {
  Ok(value) => {
    print value; // Hello
  },
  None => {
    print "No value!";
  }
}