Dart-Class(2)

이선행·2024년 3월 13일

const

class Idol {
  final String name;
  final List<String> members;

  Idol(this.name, this.members);
  
  introduce() {
    for (String member in this.members) {
      print('안녕하세요 $member 입니다.');
    }
  }
}

이런 class가 있을때

void main() {
  Idol aespa = Idol(
  '에스파',
   ['카리나', '윈터', '지젤', '닝닝']
  );

   Idol aespa2 = Idol(
  '에스파',
   ['카리나', '윈터', '지젤', '닝닝']
  );
  
  print(aespa == aespa2);
}

aespa와 aespa2가 같은지 비교하게 되면 데이터는 같지만 컴퓨터는 서로 다른 객체로 인식해 false가 나오게 된다
하지만 constructor를 const로 생성하게 되면

class Idol {
  final String name;
  final List<String> members;

  const Idol(this.name, this.members);
  
  introduce() {
    for (String member in this.members) {
      print('안녕하세요 $member 입니다.');
    }
  }
}
void main() {
  Idol aespa = const Idol(
  '에스파',
   ['카리나', '윈터', '지젤', '닝닝']
  );

   Idol aespa2 = const Idol(
  '에스파',
   ['카리나', '윈터', '지젤', '닝닝']
  );
  
  print(aespa == aespa2);
}

aespa와 aespa2를 비교했을떄 컴퓨터가 서로 같은 값으로 인식하게 되어 true가 나온다
이유는 const를 붙여주면 상수처럼 그냥 값만을 보게 되어서 그런게 아닐까 싶다 실제로 멤버의 값을 다르게 해보았더니 false가 떨어졌다
상세한 이유는 나중에 더 학습한 후에 업로드 하겠습니다.

0개의 댓글