Self
The self
parameter
The self
parameter is represented by the @
symbol.
impl CanDouble Int64
@double_me: -> @ + @
This method desugars to:
impl CanDouble Int64
double_me: self -> self + self
Those are strictly equivalent, as @
desugar to self
We can see that we also have a @
at the start of the name of the method. This allows for auto-injection of the self-parameter:
Auto-inject self parameter
The standard way of defining a self-method is to auto-inject the self parameter:
impl CanDouble Int64
@double_me: -> @ + @
Auto-return self
And if you also wanted to return self
for chainable capababilities:
impl CanDouble Int64
@double_me: @->
@ = @ + @
main: ->
let x = 2
x.double_me!.double_me!.double_me!
x.print!
Outputs
16
The @->
automatically inject the @
as last returned statement of the function's body.
This operator is only available when using the @method_name:
notation