const 커스텀클래스
안녕하세요 강사님 ! 수업 잘듣고 있습니다.
제 질문은
다트에서 커스텀클래스 안에 모든 속성에 final 키워드를 붙이면 생성자 앞에 const 키워드를 붙여서 const 커스텀 클래스를 만들수 있었잖아요~
이제 여기서 궁금한점은 ! 모든 속성중에 리스트가 있다면 final 키워드를 붙여도 그 리스트는 add 같은 동작을 할수 있는데 가변객체가 포함된 커스텀 클래스에 const 키워드 붙일 수있나 하는 것입니다 !
답변 1
1
안녕하세요
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);
}감사합니다 :)
수강 기한 연장 요청드려도될까요..
1
45
2
37.provider 실습 문제점, 카트에서 상품이 지워지지 않습니다.
1
75
2
다트 프로젝트
1
51
2
context.read<LangService>().toggleLang 해도 언어가 변경되는 이유
1
74
3
수강 기간 연장 신청 요청드립니다.
1
67
3
수강기간 연장 부탁드립니다.
1
57
3
제공해주신 flutter_design_system 라이브러리 질문입니다.
1
53
2
수강 기간 연장 부탁드립니다
1
51
2
수강 기한 연장
1
76
3
강의 잘 보고있습니다!
1
59
2
애뮬레이터 실행 오류
1
68
2
pdf 강의노트
1
62
2
수강기간 연장 부탁드립니다.
1
86
2
수강 기간 연장 요청
1
86
2
수강기간 연장 부탁드립니다
1
128
2
코드 생성기 - build runner 관련 오류
1
110
1
디자인 시스템 구성에 대해 질문 드립니다
2
144
2
CartItem 추가시
1
95
2
강의 수강 기간 연장 요청드립니다.
1
127
2
코드 생성기 - 실습 build runner 안 되는 분.
1
269
2
Flutter 강의자료 열리지 않는 문제
1
162
2
riverpod 프로젝트에 궁금한점이 있어 질문 남깁니다.
1
119
2
수강 기강 연장 부탁드리겠습니다! :ㅇ
1
85
2
수강기한 연장
1
105
2





