locals
=
declares new locals.
So does in a. b
in object builders.
:=
changes an existing local's value.
Unlike in JS,
=
can never be used to change a value, and :=
can't be used as an expression.a = 1 . a a := 2 . a
Locals are local to the block they're declared in.
The compiler will stop you if you try to access an uninitialized local.
properties
To access a property on an object, use obj.prop
.
To access a property on this
, use .prop
.
obj = {x. 0} . obj.x f = .\ || Equivalent to `this.x` .x . f.call obj
:=
can also set property values.
obj = {x. 1} obj.y := 2 obj
To access any string as a property, use obj."foo"
equivalent to obj.("foo")
.
To access any value as a property, use obj.(foo)
.
:=
can use this syntax too.
obj = {"wierd name". 1} . obj."wierd name" obj."wierd name" := 2 key = "wierd name" . obj.(key)