flutter - Dart 函数的返回对象不相等
问题描述
我是 Flutter 和 Dart 语言的新手。有人可以向我解释为什么 geek1==geek2 在原则上应该为真时是假的。函数 gfg() 每次都返回相同的值,那么为什么 geek1 和 geek2 不相等?
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);
}
解决方案
Dart 中的对象相等性通过引用进行评估 - 基本上,您正在创建两个不同的对象,它们存储在两个不同的内存地址。当 Dart 运行时比较对象时,它会比较它们的内存地址,而不是默认情况下它们的内容。
要比较两个List
对象的内容,可以使用listEquals函数。
一些额外的信息:
要比较类的相等性,您可以覆盖相等运算符,也可以使用Equatable包。
推荐阅读
- php - 打印嵌套的 JSON 字典
- string-formatting - 如何解决 Power BI 中超出当前范围的错误(DAX 公式)
- c# - 如何创建包含 2x 逻辑规则的 ASP.NET Core 授权策略?
- excel - Excel 宏 - 如何为数据透视图设置固定名称?
- biztalk - BizTalk 2013 WCF-SQL 适配器插入十进制 (38,20)
- react-native - Jest-expo 测试不运行
- create-react-app - 如果弹出后出现 lint 错误,则构建失败
- android - LiveData、MVVM 和存储库模式
- docusignapi - 如何在docusign php api的帮助下将html表格添加到DocuSign文档中?
- c++ - QTableWidget 到多个文件