카테고리 없음
[dart] 가변객체, 불변객체
STUFIT
2024. 3. 20. 05:43
반응형
1. 가변객체란?
메모리에 할당한 뒤 값을 변경할 수 있는 객체이다.
가변객체에는 List, Set, Map, 커스텀 클래스 등이 있다.
가변객체는 값이 변경될 수 있으므로 값이 동일해도 새롭게 생성되는데 이는 항상 다른 메모리 주소를 반환한다.
List a = [];
a.add(1); // 메모리 주소를 유지하면서 값을 변경 가능함.
Set a = {};
a.add(1); // 메모리 주소를 유지하면서 값을 변경 가능함.
Map<String, dynamic> b = {};
b['name'] = '철수'; //메모리 주소를 유지하면서 값을 변경 가능함.
A a = A(1);
a.value = 2; //메모리 주소를 유지하면서 값을 변경 가능함.
class A{
int value;
A(this.value);
}
2. 불변객체란?
메모리에 할당한 뒤 값을 변경할 수 없는 객체를 말한다.
불변 객체로는 String, int, double, bool, const로 선언된 객체 등이 있다.
String a = '철수';
a= '영희'; // '철수'를 변경한게 아니라 '영희'를 생성(메모리 주소가 바뀐다.)
int a = 3;
a = 6; // 3을 변경한게 아니라 6을 생성(메모리 주소가 바뀐다.)
반응형