Object 为什么1和重新调谐的1是同一个对象

Object 为什么1和重新调谐的1是同一个对象,object,dart,Object,Dart,我很困惑,谁能给我解释一下,我的代码: int fun1() { return 1; } int fun2(int x) { return x + x; } void main() { print(identical(1, fun1())); print(identical(2, fun2(1))); } 结果: 真的 真的 我的问题: 为什么常量1和fun1()是同一个对象 常量2和fun2()是同一个对象??谢谢,这是因为您执行了fun1(),它返回了1,现在您比较了

我很困惑,谁能给我解释一下,我的代码:

int fun1() {
  return 1;
}

int fun2(int x) {
  return x + x;
}

void main() {
  print(identical(1, fun1()));
  print(identical(2, fun2(1)));
}

结果: 真的 真的 我的问题: 为什么常量1和fun1()是同一个对象
常量2和fun2()是同一个对象??谢谢,这是因为您执行了fun1(),它返回了1,现在您比较了1和1,这显然是正确的。

相同的
不只是为了相等,而是为了完全相同的对象。fun2呢?这是否意味着,如果存在具有相同值的对象,则函数将返回对该对象的引用而不构建引用?所有基元类型都是不可变的,因此,如果它们合理地相等,则被创建为相同的对象。这包括符号:
#foo
#foo
在任何地方都是同一个对象。谢谢你的回答,这让我有点清楚,,,,但省道与在函数中创建或在函数外创建的对象(当它是指定类型时)没有区别?