Thread overview | |||||
---|---|---|---|---|---|
|
March 03, 2016 Empty Associative Aarray Literal | ||||
---|---|---|---|---|
| ||||
I want to have one of the parameters on a function be optional. The problem is, is that it's a AA and D does not seem to support empty AA literals. Observe: string func(int a, int[int] b = []) { return "mem1"; } void main() { func(1); } $ dmd test test.d(8): Error: cannot implicitly convert expression ([]) of type void[] to int[int] This doesn't work either string func(int a, int[int] b = int[int].init) { return "mem1"; } void main() { func(1); } |
March 03, 2016 Re: Empty Associative Aarray Literal | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jack Stouffer | On Thursday, 3 March 2016 at 22:06:54 UTC, Jack Stouffer wrote:
> I want to have one of the parameters on a function be optional. The problem is, is that it's a AA and D does not seem to support empty AA literals. Observe:
>
> string func(int a, int[int] b = []) {
> return "mem1";
> }
>
> void main() {
> func(1);
> }
>
> $ dmd test
> test.d(8): Error: cannot implicitly convert expression ([]) of type void[] to int[int]
>
> This doesn't work either
>
> string func(int a, int[int] b = int[int].init) {
> return "mem1";
> }
>
> void main() {
> func(1);
> }
Use null:
string func(int a, int[int] b = null) {
return "mem1";
}
void main() {
func(1);
}
|
March 03, 2016 Re: Empty Associative Aarray Literal | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jack Stouffer | On 03/03/2016 02:06 PM, Jack Stouffer wrote:
> This doesn't work either
>
> string func(int a, int[int] b = int[int].init) {
Parentheses around int[int] works though. I don't know whether it's a bug.
string func(int a, int[int] b = (int[int]).init) {
Ali
|
Copyright © 1999-2021 by the D Language Foundation