我正在使用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
如果我不能这样做,我会创建一个课程,但这对我想做的事情来说有点沉重。欢迎任何建议!