首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dart函数的返回对象不相等

Dart函数的返回对象不相等
EN

Stack Overflow用户
提问于 2021-08-18 21:10:13
回答 2查看 502关注 0票数 2

我不懂颤音和飞镖语。请有人向我解释一下为什么geek1==geek2是错误的,而原则上它应该是正确的。函数gfg()每次返回相同的值,那么为什么geek1和geek2不相等?

代码语言:javascript
复制
gfg() => [1, 2];     
// Main function
void main() {
  // Assiging value
  // through function
  var geek1 = gfg();
  var geek2 = gfg();
   
  // Printing result
  // false
  print(geek1 == geek2);
  print(geek1);
  print(geek2);
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-08-18 21:16:48

在Dart中,对象相等是通过引用来计算的--基本上,您正在创建两个不同的对象,它们存储在两个不同的内存地址中。当Dart运行时比较对象时,它会比较它们的内存地址,而不是默认情况下它们的内容。

要比较两个List对象的内容,可以使用listEquals函数。

一些额外的信息:

若要比较类是否相等,请使用可以重写相等运算符。或使用赤道包。

票数 1
EN

Stack Overflow用户

发布于 2021-08-18 21:14:37

因为gfg是一个函数,它在每次调用时都返回一个新数组。

您正在将它们与==进行比较,后者是用于进行身份比较的操作符,而不是值比较(即。平等)。由于实例总是不同的,所以它们从来都不是相同的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68839355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档