Dart 언어에서 copyWith()
메서드는 왜 쓰는 걸까?
- Dart 언어는 현대 언어로 불변을 통한 코드 안정성을 지향한다.
- 불변 객체는 말그대로 객체 내부 멤버 값이 변하면 안된다.
- 객체 내부 멤버 값이 변할 것 같으면 아예 새 객체를 생성한다.
- 새 객체를 생성하기 위한 수단이
copyWith()
이다.- 인자로 새로 받지 않은 값은 기존의 값을 그대로 유지하고 인자로 새로 받은 값은 새로 받은 값으로 업데이트해준다.
예제 코드
id
,content
,date
중 새로 받은 값만 업데이트된 새 객체를 생성해 반환한다.
Post copyWith({
String? id,
String? content,
DateTime? date,
}) {
return Post(
id: id ?? this.id,
content: content ?? this.content,
date: date ?? this.date,
);
}
반응형
'Dart' 카테고리의 다른 글
다트 (Dart) 의 캐스케이드 연산자 (Cascade operator) 란? (0) | 2023.12.17 |
---|---|
Dart 에서 import hide 이용하기 (0) | 2023.12.15 |
Dart 의 Null-safe 언어적 특성 (0) | 2023.12.15 |
다트의 비동기 지원 (Asynchronous Support) (0) | 2023.10.22 |
다트 비동기 프로그래밍 (Future, Async, Await) (0) | 2023.10.22 |