해결된 질문
작성
·
221
0
일반적으로 참조하는 변수를 선언하는 위치가, 2가지로 파악이 됩니다.
1. Class 밖에 변수 선언
2. build 함수 내부에 선언
특별히 1번과 2번의 위치를 구분해서 선언하는 이유가 있는지 알고 싶습니다.
// ✅ 1. Class 밖에 변수 선언
class MainDrawer extends StatelessWidget {
const MainDrawer({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
// ✅ 2. build 함수 내부에 선언
return Drawer(
backgroundColor: DARK_COLOR,
child: ListView(
답변 1
4
안녕하세요.
변수 선언의 위치는 공학적으로 봤을때 메모리 관리와 연관이 큽니다.
하지만 이부분은 현대 프로그래밍에서 초보 단계에 크게 중요한 요소가 아니기때문에 약간 다르게 설명을 드리겠습니다.
뉘앙스의 차이로 생각하시면 될 것 같습니다.
클래스 밖에다 변수를 선언한다는 것은 해당 변수가 프로젝트 전반적으로 사용될 상수같은 개념일경우 많이 사용됩니다.
두번째로 클래스 내부 변수로 선언하는 경우는 클래스에 종속되는 값이고 상태관리를 해야할경우 사용됩니다.
마지막으로 build() 함수에 선언하는경우 build() 함수가 실행될때마다 새로운 값들을 반환해내야할때 사용됩니다.
세가지 어떤 방법으로 선언해도 틀리지 않은 상황이 많이 있습니다. 이럴땐 너무 고민할 필요 없이 최 하위 (위에서 말씀드린 순서의 역순)부터 선언하시면 될 것 같습니다.