On Saturday, 19 November 2022 at 03:52:41 UTC, thebluepandabear wrote:
Say you want to write 'SET' now whenever someone sets a width/height value for the rect (as an example), and 'GET' when someone gets the width/height value for the rect, what you could do is do this:

```
class Rect2D {
    int rectWidth;
    int rectHeight;

    int width() {
        writeln("GET");
        return rectWidth;
    }

    void width(int rectWidth) {
        writeln("SET");
        this.rectWidth = rectWidth;
    }

    int height() {
        writeln("GET");
        return rectHeight;
    }

    void height(int rectHeight) {
        writeln("SET");
        this.rectHeight = rectHeight;
    }
}
```

Honestly, it may not be a magic bullet, but still useful.

Yes, this is what I meant. I did use the UFCS name inaccurately: I believe UFCS means the ability to write `y.x(z)` in place of `x(y, z)`, and maybe the ability to write `y.x = z` in place of `y.x(z)`, but it does not mean the ability to omit empty parenthesis in a function call. The latter is what enables getters that don't break the API.

Reply via email to