본문 바로가기

Switch

(2)
BLOC CUBIT 정말 좋은 SWITCH 문으로 사용하기.. 처음 if문 접했을때 riverpod 을 보고, switch를 적용 하고 . 문서 살펴보면서 만들어본 예제이고 앞으로 저도 이렇게 사용하려고 합니다. 디폴트를 _=> 이렇게 설정하는걸 발견, bloc는 모두 설정하다보니 , 귀차니즘이 찾은 작성법입니다. 디폴트 없나 하고,, 찾다보니 찾아 지더군요. . 아래 코드는 예제로 만든 코드로 각 상태마다 페이지를 구성 합니다. 페이시 시작할때, 로딩중일때, 완료했을때, 에러날때, ..등등 상태설정해서 응용이 가능합니다. return Scaffold( appBar: AppBar(title: const Text('LIst Cubit')), body: BlocBuilder( builder: (context, state) => switch (state) { Person..
Bloc 에서 if 는 되는데 Switch는 안되는 이유와 해결법 계산기 Bloc 예제로 +-/* 를 처리 한다. 처음 switch 로 해결 하려 했지만, 안된다 . 이유는 Dart 언어의 타입 시스템 때문에 이런 현상이 발생 Dart는 if 문에서 타입 추론을 수행하여 event가 특정 하위 타입(AddEvent, SubtractEvent 등)인지 확인. 각 분기에서 num1과 num2에 접근할 수 있음 But, switch 문에서는 Dart가 이러한 타입 추론을 수행하지 않음. event.runtimeType을 확인하더라도 Dart는 event를 CalculatorEvent 타입으로 간주 따라서 num1과 num2에 접근하려고 하면 오류가 발생 이 문제를 해결하려면 각 case 분기에서 수동으로 타입 캐스팅을 수행해야 함 CalculatorBloc() : super..