if문이나 switch문은 식(expression)이 아니라 문(statement)이기 때문에 expression처럼 단일 값으로 평가하게 해줘야만 사용 가능
즉시 실행 함수 표현식((){}),()
으로 단일 값을 리턴하게 해주는 방식으로 if문(또는 switch)을 사용가능
body: Column(
children: [
IconButton(
onPressed: pageChangeHandler,
icon: const Icon(Icons.change_circle),
),
page_num == 1 ? const FirstPage() : const SecondPage(),//삼항 연산자를 쓰는 경우
(() {
if (page_num == 1) {//if문을 쓰는경우 ((){if문})(),으로 감싸준다.
return const FirstPage();
} else {
return const SecondPage();
}
})(),
],
),
if문을 사용할 경우 ((){if문})(),
으로 감싸준다.
body: Column(
children: [
IconButton(
onPressed: pageChangeHandler,
icon: const Icon(Icons.change_circle),
),
(() {
switch (page_num) {//switch문 또한 쓰는경우 ((){if문})(),으로 감싸준다.
case 1:
return const FirstPage();
case 2:
return const SecondPage();
default:
return const FirstPage();
}
})(),
],
switch문을 사용할 경우 ((){switch문})(),
으로 감싸준다.
참조
프론티어쿼리