Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 自动呼叫转移-访问啮齿动物';大肠_Dart - Fatal编程技术网

Dart 自动呼叫转移-访问啮齿动物';大肠

Dart 自动呼叫转移-访问啮齿动物';大肠,dart,Dart,D语言有“别名…”。Go具有嵌入式字段。在下面的代码中,Dart有没有办法不经过肠道就到达啮齿动物的大肠?理想情况下,可以通过某种方式公开一组内部构件,而不必在每个动物身上创建具有一些公共内部构件的转发呼叫 导入'dart:io'; 类胃{ work(){print(“胃”);} } 大肠类{ work(){print(“大肠”);} } 类小肠{ work(){print(“小肠”);} } 阶级勇气{ 胃=新胃(); LargeInteine LargeInteine=新的LargeInte

D语言有“别名…”。Go具有嵌入式字段。在下面的代码中,Dart有没有办法不经过肠道就到达啮齿动物的大肠?理想情况下,可以通过某种方式公开一组内部构件,而不必在每个动物身上创建具有一些公共内部构件的转发呼叫

导入'dart:io';
类胃{
work(){print(“胃”);}
}
大肠类{
work(){print(“大肠”);}
}
类小肠{
work(){print(“小肠”);}
}
阶级勇气{
胃=新胃();
LargeInteine LargeInteine=新的LargeInteine();
小肠=新的小肠();
工作(){
胃。工作();
大肠。工作();
小肠;
}
}
类啮齿动物{
勇气=新的勇气();
工作()=>guts.work();
}
main(){
啮齿动物=新啮齿动物();
啮齿动物肠子;
啮齿动物。工作();
}

感谢您对。。。生物学,我很高兴地说,你正在寻找的结构可能是
get
关键字

见:

类啮齿动物{
勇气=新的勇气();
工作()=>guts.work();
//啮齿动物大肠的吸气剂。
LargeInteine get LargeInteine=>guts.LargeInteine;
}
main(){
啮齿动物=新啮齿动物();
//使用吸气剂。
啮齿动物;大肠;
啮齿动物。工作();
啮齿动物。清醒();
啮齿动物。识别大师();
if(啮齿动物自我意识和啮齿动物自我意识){
啮齿类动物。打开(啮齿类动物。主人);
打印(“哦,哦,不!不!哦!啊哈…);
啮齿动物。大肠。工作();
}
}

或者,如果您希望节省编写工作,您可以拥有一个超类、接口或mixin(取决于您想做什么),该类或接口或mixin具有您要查找的属性:

类动物{
LargeInteine LargeInteine=新的LargeInteine();
...
}
啮齿类动物{…}

class啮齿动物用动物{…}扩展对象

请参阅:

谢谢。事实上,我在寻找的工作比为每只动物的每个器官声明“get”要少。例如,使用D可以在啮齿类动物中使用“别名this guts”,然后可以直接使用啮齿类动物的内脏成员。所以,这是一个玩具示例,但假设有30个动物,我不想要30*3个复制/粘贴getter(即没有复制/粘贴转发)。我还没有在Dart中使用mixin,所以可能有一个潜在的解决方案?