작성
·
145
답변 2
0
안녕하세요!
AI가 잘 설명을 해주었는데 저도 한번 더 설명드리면 WebViewController() 값이 const가 아니기 때문에 HomeScreen을 인스턴스화 할때 const 키워드를 사용 할 수 없기 때문입니다.
기억이 잘 안나신다면 제 OOP강의 참고해주세요!
감사합니다!
0
안녕하세요, 인프런 AI 인턴입니다.
질문해주신 내용에 대해 Flutter에서 const
키워드 사용 관련하여 WebViewController
와 생성자에 const
를 사용할 수 없는 이유를 설명드립니다.
Flutter에서 const
키워드를 사용하는 경우, 해당 인스턴스가 컴파일 타임에 결정되며 변하지 않는 값을 갖게 됩니다. 이는 특정 위젯이나 클래스 인스턴스가 앱이 실행되는 동안 동일하게 유지되어야 할 때 유용하게 사용됩니다.
하지만, WebViewController
와 같이 런타임에 상태가 변경될 수 있는 객체에 대해 const
생성자를 사용하려 하면, 컴파일 타임에 해당 객체의 상태를 결정할 수 없기 때문에 오류가 발생합니다. WebViewController
인스턴스는 웹 페이지 로딩이나 사용자 상호작용 등의 이유로 상태가 변할 수 있는 객체이므로, const
로 선언할 수 없습니다.
특히, HomeScreen
위젯에서 WebViewController
를 사용하게 되면, HomeScreen
의 생성자 역시 const
로 표시될 수 없습니다. const
생성자 안에서는 모든 필드가 컴파일 타임에 결정되고 변하지 않아야 하는데, WebViewController
같은 런타임에 변할 수 있는 객체를 멤버 변수로 갖게 되면 이 규칙에 어긋나게 됩니다.
여러분의 질문과 관련하여 찾아본 자료 중, “const를 왜 없애줘야 하나요?ㅜㅜ” 질문에서 코드팩토리 강사님이 제공한 답변이 도움이 될 수 있습니다. 강사님은 const
의 사용 조건과 WebViewController
같이 런타임에 상태가 변할 수 있는 객체를 다룰 때 const
사용이 불가능한 이유를 설명했습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.