On Sunday, 14 June 2015 at 06:46:05 UTC, Ali Çehreli wrote:
On 06/13/2015 11:12 PM, Ozan wrote:

> Hallo!
>
> Is it possible to create arrays which has more then one type,

Not possible.

> f. ex. array[0] = 1; array[1] = "z"; array[2] = new clazz(),
....
>
> I tried "Variant", but it slow down heavily my app.

Another option is OOP. Depending on the way they are used in the program, those different types have a common interface. It is possible to have an array of that interface:

    Foo[] foos;

interface Foo
{
    void commonFunction();
    // ...
}

class clazz : Foo
{
    // ...
}

However, fundamental types like int need to be boxed:

class FundamentalFoo(T) : Foo
{
    T value;

    // ...
}

If needed, you can specialize FundamentalFoo for int, string, etc.

Ali

Thanks.
It need some effort but it is a more performant to have a multi-type array compared to Variants. And thanks to D's template system it isn't so much effort.

Regards Ozan

Reply via email to