getopt: How does arraySep work?
schveiguy at gmail.com
Tue Jul 14 13:40:44 UTC 2020
On 7/14/20 7:12 AM, Andre Pany wrote:
> by reading the documentation of std.getopt I would assume, this is a
> valid call
> dmd -run sample.d --modelicalibs a b
> ``` d
> import std;
> void main(string args)
> string modelicaLibs;
> getopt(args, "modelicalibs", &modelicaLibs);
> assert(modelicaLibs == ["a", "b"]);
> but it fails, as array modelicaLIbs only contains ["a"].
> The std.getopt : arraySep documentation hints that it should work:
>> The string used to separate the elements of an array or associative
>> array (default is "" which means the elements are separated by
> Is my understanding wrong, or is this a bug?
The whitespace separator doesn't get to your program. args is:
["sample", "--modelicalibs", "a", "b"]
There is no separator in the parameter to --modelicalibs, it's just "a".
What you need to do is:
dmd -run sample.d --modilicalibs "a b"
More information about the Digitalmars-d-learn