반복문과 깊은 복사
반복문
기본 for 문
var list = [1, 2, 3, 4];
for(var i=0; i<list.length; i++){
print(list[i]);
}
for in 문
- 배열의 끝까지 돌 때 사용
for(var e in list){
print(e);
}
forEach 문 ( 권장 x )
- for in 문과 동일
list.forEach((e) => print(e));
list.forEach((e) {
print(e);
});
배열 복사
얕은 복사 ( 주소 복사 )
- list[0] = 1 일때 얕은 복사 후 list[0]을 10으로 바꾸면 newLIst[0]도 10으로 바뀜
- 같은 공간을 참조하고 있기 때문
var newList = list; // 주소 복사
깊은 복사 ( 배열 복사 )
- map
- 반복해서 값을 리턴해주는데 값을 연산해서 리턴 가능
var mapList = list.map((e) => e + 1 );
깊은 복사 ( 스프레드 연산자 )
- 연산 불가능
- 그러나 삽입할때 유용
var spreadList = [...list];
var spreadList = [10, ...list, 100];
필터링 후 깊은 복사
- true 가 리턴된 값만 리스트에 넣음
var filterList = list.where((e) => e == 2);
정리
기본 반복 : 일반 for 문, for in 문
반복 후 리턴 : map
반복 후 어떤 값을 걸러내고 싶을 때 : where
값 변경 시에 깊은 복사 → 주소가 달라야 플러터나 리액트에서 그림을 다시 그림
참고
https://www.youtube.com/watch?v=s8xUCD0IxIo&list=PL93mKxaRDidGEaUXprXqhNvSW02xCjLZI&index=11
728x90
'Study > Dart' 카테고리의 다른 글
[Dart] 클래스 (0) | 2021.06.04 |
---|---|
[Dart] final 과 const 차이 (0) | 2021.06.04 |
[Dart] 익명함수와 화살표 함수 (0) | 2021.06.04 |
[Dart] 메서드(함수) (0) | 2021.06.03 |
[Dart] 기본자료형 (0) | 2021.06.03 |