Immutable? 불변의 객체 이걸 왜 사용해야 할까? Dart로 클래스를 만들면 기본적으로 mutable하다. 하지만 이런 객체(특히 Model)를 사용하게 되면 원하지 않는 데이터의 변경이 발생하는 경우가 있다. 아래 코드를 한번 보자 class Document { String id; String title; Document({required this.id, required this.title}); } void main() { final document = Documet(id:’1234’, title:’개발자놀이!’); final isValidTitle = checkTitleValidation(document); print(‘${document.title}: ${isValidTitle}’); } b..
많은 프로그램 언어들이 열거형을 지원한다. Dart도 물론 enum 타입을 사용할 수 있는데 보통 그룹화해 사용할 수 있는 상수 값들을 하나의 묶음으로 만들기 위해서 사용한다. 프로그램 언어들 마다 enum을 다양하게 활용할 수 있는 기능을 제공하는데 dart에서는 enum에 추가적인 기능을 정의할 수 없고 오직 단순한 선언과 사용만을 지원한다. (dart 2.17부터는 enum도 일반 클래스 처럼 쉽게 기능을 정의하고 사용할 수 있게 되었다 - 본문 마지막 참고) enum의 기본 사용법 예를 들어 아래와 같이 공지사항 게시판, 자유게시판으로 게시판이 타입이 구분된다고 가정해보자 enum을 사용하면 아래와 같이 선언해서 사용할것이다. enum BoardType { notice, free, undefine..
Java를 사용해본 개발자라면 equals 와 hashCode 메소드를 override해보았을 것이다. 이 두함수는 객체가 같은지를 비교하고, HashMap이나 HashSet등에서 hash된 값을 사용하기 위해 접근하는 함수이다. hashCode를 이용해서 동일한 객체가 있는 지를 비교하고, 적당한 위치에 데이타를 저장하게 된다. 특히 data클래스들은 이 함수들을 잘 override해주어야 한다. kotlin에는 data class가 equals와 hashCode를 별도의 추가 작업 쉽게 사용할 수 있도록 자동화 되어 있는데, dart에서 kotlin의 data class에 해당하는 기능을 제공하는 라이브러리가 Equatable이다. 아래 java, kotlin, dart의 코드를 비교해보자 java에..
- Total
- Today
- Yesterday
- Flutter TDD
- flutter 다국어처리
- dart 2.17
- DART
- Flutter
- flutter l10n
- flutter_secure_storage
- Route
- Flutter3.0
- json_serializable
- Widget Tree
- enum member
- Mutiple Flutter
- Element LifeCycle
- FlutterEngine
- python3
- flutter i18n
- Flutter LifeCycle
- flutter element
- RenderObject
- MVVM
- dart enum
- navigator
- StatefulWidget LifeCycle
- flutter mvvm
- LocalKey
- Android
- widget element
- freezed
- flutter2.0
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |