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,extensedobjectwithobservable和extensedobservable应用于下面的类有什么区别 运行应用程序时,结果相同 库模型; 进口“包装:聚合物/聚合物.dart”; 类Person扩展了具有可观察性的对象{ @可观察字符串名称; @可观测布尔签名协议=假; 人(); 来自(其他人){ name=other.name; signedAgreement=其他。signedAgreement; } 空白(){ 名称=“”; 签署协议=错误; } } 图书馆模型; 进口“

extensedobjectwithobservable和extensedobservable应用于下面的类有什么区别

运行应用程序时,结果相同

库模型;
进口“包装:聚合物/聚合物.dart”;
类Person扩展了具有可观察性的对象{
@可观察字符串名称;
@可观测布尔签名协议=假;
人();
来自(其他人){
name=other.name;
signedAgreement=其他。signedAgreement;
}
空白(){
名称=“”;
签署协议=错误;
}
}
图书馆模型;
进口“包装:聚合物/聚合物.dart”;
类人可观察{
@可观察字符串名称;
@可观测布尔签名协议=假;
人();
来自(其他人){
name=other.name;
signedAgreement=其他。signedAgreement;
}
空白(){
名称=“”;
签署协议=错误;
}
}

这两个声明的行为没有区别

这是:

使用mixin扩展“Object”时,第一个mixin始终可以代替“Object”

唯一的差别是类层次结构(
超类
不相同):

导入“dart:mirrors”;
抽象类Mixin{}
类A扩展了Mixin{}
类B使用Mixin{}扩展对象
main(){
打印(反射类(A).超类);
//=>ClassMirror在“Mixin”上
打印(反射类(A).超类.超类);
//=>对象上的类镜像
打印(反射类(B).超类);
//=>dart.core.Object with.Mixin上的类镜像
打印(反射类(B).超类.超类);
//=>对象上的类镜像
}

非常感谢Alexandre。别忘了验证答案。