강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của uhi
uhi

câu hỏi đã được viết

Thực hành phát triển ứng dụng Flutter

Tạo đối tượng & so sánh

const 커스텀클래스

Đã giải quyết

Viết

·

93

1

안녕하세요 강사님 ! 수업 잘듣고 있습니다.

제 질문은

다트에서 커스텀클래스 안에 모든 속성에 final 키워드를 붙이면 생성자 앞에 const 키워드를 붙여서 const 커스텀 클래스를 만들수 있었잖아요~

 

이제 여기서 궁금한점은 ! 모든 속성중에 리스트가 있다면 final 키워드를 붙여도 그 리스트는 add 같은 동작을 할수 있는데 가변객체가 포함된 커스텀 클래스에 const 키워드 붙일 수있나 하는 것입니다 !

flutter

Câu trả lời 1

1

DevStory님의 프로필 이미지
DevStory
Người chia sẻ kiến thức

안녕하세요

const가 붙은 경우에는 컴파일 타임에 연산이 끝나고 완전 불변 객체로 다뤄지기 때문에 내부에 final로 선언된 배열이 있어도 해당 속성에 원소를 변경하는게 불가능합니다.

아래 예제를 보시면, const가 붙은 경우에는 내부 속성에 add() 함수를 호출 할 수 없습니다.

DartPad 링크에서 해당 코드를 실행해 보실 수 있습니다.

void main() {
  try {
    const family = Family(["mom"]);
    family.members.add("dad");
    print(family.members);
  } catch (e) {
    print(e.toString()); // Unsupported operation: add
  }
  
  final family = Family(["mom"]);
  family.members.add("dad");
  print(family.members); // [mom, dad]
}

class Family {
  final List<String> members;
  
  const Family(this.members);
}

감사합니다 :)

Hình ảnh hồ sơ của uhi
uhi

câu hỏi đã được viết

Đặt câu hỏi