Haxe中的递归typedef

时间:2013-12-12 17:30:10

标签: haxe

我正在使用typedef,我希望它包含自己,但我有编译错误,所以也许是因为我不能(或不应该)。是吗?

这是我的typedef:

typedef Group = {
    var id: String;
    var ref: String;
    var rules: Array<String>;
    @:optional var groups: Array<Group>;
    @:optional var inputs: Array<Input>;
}

然后我的代码使用它:

private inline function createGroup(xml: Fast): Group{
    if(xml.hasNode.Group){
        var groups = new Array<Group>();
        for(group in xml.nodes.Group)
            groups.push(createGroup(group));
        return {id: xml.att.id, ref: xml.att.ref, rules: rules, groups: groups};
    }
    else{
        var inputs = new Array<Input>();
        for(input in xml.elements)
            inputs.push(createInput(input));
        return {id: xml.att.id, ref: xml.att.ref, rules: rules, inputs: inputs};
    }
}

我有这个错误:

haxe: { rules : Array<String>, ref : String, inputs : Array<Input>, id : String } has no field groups

如果我不能这样做,我会创建一个课程,但这对我想做的事情来说有点沉重。欢迎任何建议!

0 个答案:

没有答案