Inflearn コミュニティ Q&A
main_screen 질문
作成
·
483
·
編集済み
0
051.비만도계산기프로젝트 강의영상 2:58에서요
class MainScreen extends StatefulWidget { const MainScreen({Key? key}) : super(key: key); @override State<MainScreen> createState() => _MainScreenState(); } class _MainScreenState extends State<MainScreen> { @override Widget build(BuildContext context) { return Container(); } }
이렇게 입력을 한 이유가 뭔가요? MainScreen 하고 Container이요
回答 2
1
상태가 있는 화면을 만드는 기본 코드입니다.
별다른 이유가 있다기 보다는 구글에서 이렇게 쓰면 된다고 정해둔 코드로서 이런 의미없는 코드를 상용구라고도 부릅니다.
그래서 '상태가 있는 화면을 만드는 상용구 코드'입니다.
Container() 는 빈 공간이고요. 기본적으로 뭐라도 있어야 하기 때문입니다. 요즘 버전에서는 PlaceHolder() 가 자동으로 생길겁니다. 이건 빈공간인데 X 표시까지 보여주는 의미없는 위젯중 하나입니다.
MainScreen은 클래스의 이름을 정해 준 것입니다.
상용구 코드를 쓸 때는 코드의 작은부분 하나하나를 이해하면서 쓸 필요가 없습니다. 그냥 이 코드 덩어리가 무엇을 하는 거다 정도로 넘어가도 무방합니다.
final 이 실행중에 결정되는 상수라면, const 키워드의 역할은 컴파일타임 상수를 정의하는 키워드입니다.
변수가 없는 Widget 은 생성자에 const 키워드를 두면 상수화 하여 성능을 좋게 할 수 있습니다. 한번 메모리에 생성된 것을 재활용하기 때문입니다.
책의 맨 뒤쪽 index 에 보시면 찾는 키워드를 검색할 수 있는데요. 책에서는 자세한 설명 없이 padding 코드에 들어간다 정도의 느낌으로 지나갑니다.
0
인터넷 검색 등을 통해서 다른 곳의 코드들을 보신 것이라면 버전에 따라서 약간씩 다를 수는 있으나 중요한 부분은 동일할 겁니다.
처음에는 그냥 복사해서 써도 무방하지만 기능을 추가할 때는 정확한 의미를 알고 수정해야 합니다. 그 때는 Dart 문법이나 Flutter를 깊이 공부할 필요가 있습니다.






2:40에서 const는 왜 붙이나요?
책에 있다면 몇페이지인지알려주세요