groovy-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From MG <mg...@arscreat.com>
Subject Re: [Poll] About supporting Java-like array
Date Mon, 30 Apr 2018 02:39:32 GMT
Hi Daniel,

I did a quick check and it works with dynamic Groovy, but is rejected 
under static compilation:

@Test @Ignore void arrayFromListLiteral() {
   int[] a0 = [1,2,3]
   int[][] aa0 = [[1,2,3],[4,5,6]]
   int[][][] aaa0 = [[[1],[2],[3]],[[4],[5],[6]]]
   int[][][] aaa1 = [[1,2,3],[4,5,6]]
   int[][][] aaa2 = [1,2,3,4,5,6]
   int[][][] aaa3 =1 println"a0=$a0" println"aa0=$aa0" println"aaa0=$aaa0" println"aaa1=$aaa1"
println"aaa2=$aaa2" println"aaa3=$aaa3" assert a0instanceof int[]
   assert aa0instanceof int[][]
   assert aaa0instanceof int[][][]
   assert aaa1instanceof int[][][]
   assert aaa2instanceof int[][][]
   assert aaa3instanceof int[][][]
}

gives:

a0=[1, 2, 3]
aa0=[[1, 2, 3], [4, 5, 6]]
aaa0=[[[1], [2], [3]], [[4], [5], [6]]]
aaa1=[[[1], [2], [3]], [[4], [5], [6]]]
aaa2=[[[1]], [[2]], [[3]], [[4]], [[5]], [[6]]]
aaa3=[[[1]]]


with @CompileStatic the compiler gives:

Error:(37, 19) Groovyc: [Static type checking] - Cannot assign value of 
type java.util.List <java.lang.Integer> into array of type int[][]
Error:(38, 22) Groovyc: [Static type checking] - Cannot assign value of 
type java.util.List <java.util.List> into array of type int[][][]
Error:(39, 22) Groovyc: [Static type checking] - Cannot assign value of 
type java.util.List <java.lang.Integer> into array of type int[][][]
Error:(40, 22) Groovyc: [Static type checking] - Cannot assign value of 
type int into array of type int[][][]
Error:(41, 22) Groovyc: [Static type checking] - Cannot assign value of 
type int to variable of type int[][][]

and one has to do

int[][] aa0 = [[1,2,3],[4,5,6]]as int[][]

etc

Cheers,
mg



On 30.04.2018 02:02, Daniel Sun wrote:
> Hi mg,
>
>       As far as I remember, two dimensional array like`int[][] a = [[1, 2,
> 3], [4, 5, 6]]` will go wrong in the Groovy style.
>
> Cheers,
> Daniel.Sun
>
>
>
>
> --
> Sent from: http://groovy.329449.n5.nabble.com/Groovy-Users-f329450.html
>


Mime
View raw message