...<-Spread Operator, Tripple Dot 점 세개

Jooni·2021년 2월 8일
0

Jooni_ Flutter 오답노트

목록 보기
26/26
//참고 List<Drink> stateDrink;
...stateDrink	//@@@@여기가 중요
     .map(
      (drink) => DrinksWidget(
        drink: drink,
        onChanged: (value) {        
          StoreProvider.of<AppState>(context).dispatch(UpdateDrinkAction(drink));
        },
      ),
    ).toList(),

예전부터 알고싶어했던 문법인데 Dart를 하다보니 이상한 문법들이 종종 등장한다. 매우 편리한 문법들이라고는 하는데 처음이라그런지 익숙지않아 어렵게 느껴진다 ㅠㅠ

이 문법을 아는데 까지는 오래 걸리지 않았다. 관련 검색키워드로는 Spread Operator, Tripple Dot이라고 치면 금방 설명을 매우 잘해둔 정보들이 나온다.

위의 문법을 간략하게 핵심만 정리해서 풀어보겠다. 나머지 더 필요한 정보는 위의 키워드로 검색하길 추천!
[참조]https://www.woolha.com/tutorials/dart-using-triple-dot-spread-operator-examples

  List<int> l1 = [1, 2, 3];
  List<int> result = [0, ...l1];
  print(result);
  // 결과 : 0,1,2,3

이 코드만 보더라도 '...' 이 녀석은 변수의 소스들을 하나씩 접근해서 리턴해주는 역할을 하고 있다.
보통 우리는 List 데이터에 접근할 때 For문으로 Index접근을 하기 마련인데 ...<-이 기능을 쓴다면
굳이 그럴 필요가 없다.

처음 올려놓았던 코드를 봐보자

...stateDrink	
     .map(
      (drink) => DrinksWidget(
      //생략...)
      )).toList()

stateDrink는 List 자료구조로 "..."으로 인덱스 접근이 가능하다.
각각의 인덱스에 접근해 맵으로 값을 삭제, 수정등을 할 수 있다. 이렇게 하면 굳이 For문을 쓸 필요가 없어진다.

마지막에 toList로 리스트로 다시 바꿔서 형태를 보존하기 위함인데 이건 내가 코드 짜다가 필요하여 넣어둔거니 이부분은 신경쓸 필요가 없다.

profile
이해가 안돼시거나 질문이 있으신 분들은 댓글로 남겨주세요. 성심성의껏 응하겠습니다!

2개의 댓글

comment-user-thumbnail
2021년 6월 4일

fromMap 이해안되서 구글링하다가 들어왔는데
저는 비전공자출신으로 현재 개발자가 되기위해서 플러터배우고있습니다. 또 플러터는 시작한지 1달이 안됐지만 저두 앱 출시를 목표로 배우고있습니다 최근 게시글이 없어서 근황이 궁금한데여 블로그 게속 활동하시나요?

1개의 답글