int[][] better type match than int[] for int[]?!
Steven Schveighoffer
schveiguy at yahoo.com
Mon Sep 17 06:25:51 PDT 2012
On Mon, 17 Sep 2012 09:21:41 -0400, Andrej Mitrovic
<andrej.mitrovich at gmail.com> wrote:
> This completely surprised me:
>
> bool doMatch(int[] lhsArr, int[][] arrArr)
> {
> foreach (int[] rhsArr; arrArr)
> {
> writeln("if (!doMatch(lhsArr, arrArr))");
>
> if (!.doMatch(lhsArr, arrArr))
Don't you mean:
if(!.doMatch(lhsArr, rhsArr))
??
> return false;
> }
>
> return true;
> }
>
> bool doMatch(int[] lhsArr, int[] rhsArr)
> {
> return true;
> }
>
> void main()
> {
> int[] x = [1, 2];
> int[][] y = [[1, 2], [1, 2]];
>
> bool b = doMatch(x, y);
> }
>
> This will enter an infinite loop because the first doMatch overload
> gets recursively called. I don't understand why the second overload
> isn't picked up as a match in the call "doMatch(lhsArr, arrArr)".
Because arrArr is an int[][] :)
-Steve
More information about the Digitalmars-d
mailing list