인프런 커뮤니티 질문&답변

혜령님의 프로필 이미지
혜령

작성한 질문수

[코드팩토리] [입문] Dart 언어 4시간만에 완전정복

#2 OOP 17분 질문

작성

·

165

0

안녕하세요.
17:06분부터 설명해주시는 const constructor에 대한 질문입니다.

기존 Idol(this.name, this.members); 앞에 const를 붙이고, 위에서도 const를 붙이면 컴퓨터가 true라고 인식하는 것은 이해했습니다.
다만, final과 const의 차이점은 둘 다 고정값으로 박을 수 있는데 final 은 값이 없어도 사용가능하고, const는 설정된 값이 있어야지 사용할 수 있다고 이해했습니다. 

그렇다면 const대신 final을 사용할 수 있지 않을까라는 생각이 들어 적용해봤는데 error 가 뜹니다. 해당 constructor 앞에 final을 사용하려면 다른 조건이 필요한건지, final은 해당 부분에 적용이 불가한 것인지 너무 궁금합니다. 
final Idol(this.name, this.members); 은 왜 안되는 걸까요??

찾아봐도 안나와서 질문드립니다ㅠㅠ

답변 1

0

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

안녕하세요 final 생성자는 애초에 존재하질 않습니다.

인스턴스를 const로 만들고싶으시면 const 생성자를 선언하시면 되고 final 인스턴스를 만들고싶으시면 어떤 생성자든 상관없이 그냥 final 키워드를 사용하시면 됩니다. 예를들면 아래와 같습니다. 

 

final idol = Idol()

생성자가 무엇이냐는 전혀 상관 없습니다

혜령님의 프로필 이미지
혜령

작성한 질문수

질문하기