Open gnat opened 7 months ago
Thanks for the references. Here's what I'm currently thinking for optionals:
Option declaration:
var a ?Foo = none
var a = ?Foo.none
var a ?Foo = [Foo:]
var a = some([Foo:])
Get value or panic: a!
For optional chaining, returns last access or none: a?.b?.c
Chain but fail at first none encounter: a!.b!.c
If a is dynamic it can just be a.b.c
For null coalescing:
var res = a else 123
var res = a else:
break 123
Really like what I'm seeing so far with cyber. Thank you!
Congrats on the big 0.4 release.
Any plans for implementing an ergonomic null safe operator (or safe navigation operator or equivalent)? Use case:
Would be great to see Cyber handling missing nested items in maps with try/catch or ideally implement question mark operators (
??
and/or?.
etc)Why bother? https://www.youtube.com/watch?v=XIhQYRNBAYs
Related: https://en.wikipedia.org/wiki/Null_coalescing_operator Related: https://en.wikipedia.org/wiki/Safe_navigation_operator
Proposal for Moonscript, which shares a similar syntax with Cyber: https://github.com/leafo/moonscript/issues/285