两个对象==为啥不判断引用?

来源:7-7 操作符覆写

慕妹9356074

2019-11-24 22:14

void main(){
    var person1 = new person(20);
    var person2 = new person(20);
    print(person1 == person2);//这里的结果是true,视频里面老师也说了对象引用不一样,这两个对象,为啥==不判断引用?
}

class Person{
    int age;
    Person(this.age);
}


写回答 关注

1回答

  • 慕慕11615749184769751
    2019-11-30 02:55:00

    如果你这样写返回值肯定是 false

    你写的代码不全,对象进行操作符对比需要进行操作符覆写。。

    void main(){
     var person =new Student(20);
     var person1=new Student(20);
    
     print(person==person1);
    }
    
    class Student{
      int age;
      Student(this.age);
    
      @override
      bool operator ==(Object other) =>
          identical(this, other) ||
              other is Student &&
                  age == other.age;
    
      @override
      int get hashCode => age.hashCode;
    
    }


Flutter开发第一步-Dart编程语言入门

Flutter开发语言-Dart编程入门,为大家上手及进阶Flutter打下坚实基础。

33620 学习 · 107 问题

查看课程

相似问题