-
Notifications
You must be signed in to change notification settings - Fork 1
Closed
Description
Scope of Change
A compact syntax for simple methods will be introduced
Rationale
Slightly less return $this.member;
typing - especially in value objects.
Functionality
The -> expression;
notation is used as a shorthand for { return expression; }
.
public class Person {
protected string $name;
public string getName() -> $this.name;
}
// Equivalent of
public class Person {
protected string $name;
public string getName() {
return $this.name;
}
}
Combined with the compact assignment syntax described in RFC #240 and the fluent interface shorthand in RFC #252 we can now write value object as follows:
public class Person {
protected string $name;
public __construct($this.name= null) { }
public void setName($this.name) { }
public this withName($this.name) { }
public string getName() -> $this.name;
}
Security considerations
n/a
Speed impact
None, resolved during compile time.
Dependencies
n/a
Related documents
- Dart's "
=> e;
shorthand" - RFC Compact assignment syntax #240 - Compact assignment syntax
- XP Language's anonymous functions use this (slightly different, e.g. in
return #{ $a -> $a + 1 }.(2); // 3
it separates the arguments from the body, but this still has chances for recognition).