|
[jass]
//! zinc
library Test
{
constant integer ARRAY_SIZE_W = 5;
constant integer ARRAY_SIZE_X = 5;
constant integer ARRAY_SIZE_Y = 5;
constant integer ARRAY_SIZE_Z = 5;
type one extends integer [ARRAY_SIZE_Z];
type two extends one [ARRAY_SIZE_Y];
type three extends two [ARRAY_SIZE_X];
type four extends three [ARRAY_SIZE_W];
struct foo
{
four bar;
static method create()->thistype
{
integer i,j,k;
thistype this = thistype.allocate();
for(i=0;i<ARRAY_SIZE_W;i+=1){
for(j=0;j<ARRAY_SIZE_X;j+=1){
for(k=0;k<ARRAY_SIZE_Y;k+=1){
this.bar[j][k].create();
}
}
}
return this;
}
method onDestroy()
{
integer i,j,k;
for(i=0;i<ARRAY_SIZE_W;i+=1){
for(j=0;j<ARRAY_SIZE_X;j+=1){
for(k=0;k<ARRAY_SIZE_Y;k+=1){
this.bar[j][k].destroy();
}
}
}
}
}
function onInit()
{
foo f = foo.create();
f.bar[1][2][3][4] = 1234;
BJDebugMsg(I2S(f.bar[1][2][3][4]));
}
}
//! endzinc
[/jass]
n维数组的实现原理其实就是n层套嵌。没什么实际用处。
没有经过速度测试,稳定性测试。
纯属娱乐,老鸟飘过。 |
|