On Saturday, 7 October 2023 at 07:31:45 UTC, mw wrote:
https://stackoverflow.com/questions/47046850/is-there-any-way-to-assign-multiple-variable-at-once-with-dlang

How to do this Python code in D:

```
s = "1 2 3"
A,B,C = map(int, s.split(" "))
A,B,C
(1, 2, 3)

```

Is there a better way (since 2017)?

That functionality exists, you just have to put things in different places, but there are no more keystrokes:

```
import std;

void main() {
    int x;
    double y;
    string z;

    foo(x, y, z);
    writeln(x);
    writeln(y);
    writeln(z);
}

void foo(ref int x, ref double y, ref string z) {
    x = 4;
    y = 2.6;
    z = "hello world";
}
```

Maybe there is an argument for `x, y, z = foo();` but it's not that it's easier to read or write. If the goal is to not have to specify the types of the variables, it's hard for me to see the advantage of

```
auto x, y, z = foo();
```

over returning a struct.

Reply via email to