반복문과 깊은 복사

반복문

기본 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

+ Recent posts