is there way call constructor using varargs without hard coding array parameter (datain[0], datain[10], etc.). example,
constructor(vararg datain:string): this(datain[0],datain[1],datain[2]){ } currently calling this:
public class parent(var var1:string, var var2:string){ } public class child(var var3:string, var1:string, var2:string): parent(var1,var2){ constructor(vararg datain:string): this(datain[0],datain[1],datain[2]){ } }
it seems bit meaningless since vararg can contain more or less items other constructor expects. also, it's quite rare situation when of arguments have same type vararg suite. no, there's no language feature decompose vararg function or constructor call non-vararg parameters.
i suppose, it's better language design make show explicitly choose items of vararg contains no hidden pitfalls , aware of indexing.
but can pass vararg parameter vararg parameter function or constructor, may be, having transformed it. it's done spread operator *, see example:
public class v(vararg s: string) { constructor(vararg s: int): this("a", *s.map(int::tostring).totypedarray(), "b") } any array of right type can passed using * (including vararg since it's array), it's power of vararg ends with.
Comments
Post a Comment