노마드코더에서 dart에 관한 문법을 배우던 중 Enums와 Mixins이론을 처음 접해봤다.
이론을 들었을 때는 오 이런거 ~ 하면서 들었던 이론들인데 익숙하지 않은 이론이기 때문에 한번 더 정리하는 느낌으로 포스팅을 작성해보려고 한다.
Mixins
mixins : 생성자(constructor)가 없는 클래스
dart 페이지에서 찾아봤을 때 Mixins은 여러 클래스 계층 구조에서 재 사용할 수 있는 코드를 정의하는 방법이라고 나와있다.
Mixin을 사용하려면 with 키워드와 함께 사용해야 한다.
Dart에는 상속(extend)의 개념도 있다.
extend와 mixin의 차이로는 extend를 사용하게 되면 확장한 클래스가 부모 클래스가 되는 것이지만, mixin을 사용하게 되면 단순히 mixin 내부의 프로퍼티와 메소드를 가지고 오는 것이다.
mixin은 재활용이 가능한 클래스로 여러 class에서 사용해야 큰 의미가 있다.
Enums
Enums은 Enumerated type의 줄임말로 열거형 타입으로 해석된다.
간단하게 변수에서 사용할 옵션을 주는 것이라고 생각하면 조금 더 편리하다.
이 타입은 flutter가 코드를 작성하기 좋게 구성이 되어있다는 것을 다시 한 번 생각했던 타입이다.
위 코드의 경우 tico라는 차량의 color를 Enums 타입을 줘봤는데, enum 타입으로 color에 몇몇 색을 타입으로 입력하자 color 변수를 사용할 때 옵션이 주어지는 것을 확인할 수 있었다.
이 처럼 enum 타입은 직접 입력할 때의 옵션을 포함하여 개발자들이 실수하는 것을 방지해주는 역할을 한다.
고정된 값을 사용할 때와 지정해줘야 하는 변수가 많아졌을 때 사용하기 좋은 타입인 것 같다.
+ 나는 바로 flutter 3.0의 dart 2.17 문법을 사용해봤기 때문에 이전 버전의 enum 불편함을 경험해 보지 못했지만 2.17이 되면서 변화가 생겼다.
본래 enum의 기능 확장을 위해 extension을 정의하는 과정이 필요했는데, 2.17버전이 되면서 enum도 일반 class처럼 property 나 method, static method 를 추가할 수 있게 되었다.
두 개념 다 flutter를 사용할 때 유용하게 사용되는 개념이라 정확하게 개념을 익혀서 유용하게 사용해봐야겠다!
'junior developer :) > Flutter & Dart' 카테고리의 다른 글
[flutter] Invalid constant value 오류(const와 final) (7) | 2023.06.08 |
---|---|
[flutter]flutter app에 image 파일 넣기( + Unable to load asset 오류) (6) | 2023.06.06 |
[flutter]xcode 이용하여 실제 IOS 기기에 build 하기 (6) | 2023.06.02 |
[flutter] sizebox , spacer (with. flutter widget of the week) (6) | 2023.06.01 |
[flutter] .env 파일 추가하기(flutter_dotenv/ Unhandled Exception : Instance of 'FileNotFoundError') (7) | 2023.05.30 |