List 에 item 추가시에 add 와 ... 의 차이점이 궁금합니다.
안녕하세요.
중급강의 장바구니 제작 부분 수강중입니다.

state 에 item 을 추가하실때
이런 식으로 spread operator 를 사용하시던데요.
혹시 add 메서드를 사용해서 추가해도 결과는 똑같은가요?
state.add(BasketItemModel(product: product, count: 1));
나름대로 찾아보니깐
spread operator 를 사용하면 deep copy가 되고
add 메서드는 단순히 reference 만 추가하는 방식인거 같은데,,
맞는지 궁금합니다.
나중에 다른 코드에서도 List 에 item 을 추가할때
spread operator 를 사용하는게 더 좋은지도 궁금하고요.
좋은 강의 감사합니다!
답변 1
1
안녕하세요!
말씀하신 부분도 맞지만 사실 더욱 중요한 차이점이 있습니다!
'새로운' 리스트에 spread를 하게되면 '새로운' 리스트가 생성되고
add() 함수는 기존 리스트에 값을 추가합니다.
즉, '새로운' 리스트에 spread를 하면 메모리 포지션이 변경되게됩니다. (add에 spread를 하면 해당되지 않습니다)
'상태의 변경'이 인지되는건 메모리 주소의 변경이 돼야하기때문에 add 함수는 사용하지 않는게 좋습니다.
감사합니다!
Isar 마지막 업데이트는 2년전입니다.
0
31
0
FlutterSecureStorage 질문
0
32
0
Dio onError Interceptor 만드는 부분에 질문이 있습니다.
0
80
2
관리자 기능에 대한 질문
0
100
2
part 'restaurant_model.g.dart';
0
92
1
36강. dio 인터셉터에 storage를 전달하는 코드가 이해 안되는데요. 도움 부탁드립니다.
0
56
2
2번 반환 상황 관련 질문
0
61
2
riverpod 3.0
0
140
2
Asset folder??
0
83
2
디자이너와 협업 시 프레임 크기 설정 관련 질문
0
114
2
FutureProvider, StateNotifierProvider 선택 기준
0
70
2
컴포넌트 모델화
0
64
2
쿼리 파라미터
0
84
2
화면 안보임
0
68
2
PaginationListView
0
54
1
강의중 37.Dio onErrorInterceptor 작업하기 dio 관련 질문입니다.
0
103
2
프로토타입이미지
0
62
2
여러 객체를 상태 관리하는 방법에 대한 질문
0
85
2
장바구니 결제하기 응답이 500이 옵니다.
0
105
2
removeFromBasket에서 await patchBasket()을 마지막에 하면 에러나는거 아닌가요?
0
67
2
이 두가지는 완전히 동일한 기능인가요?
0
106
3
내부 코드를 작성하지 않은 CursorPaginationLoading가 어떻게 로딩상태를 갖는지 잘 모르겠습니다...
0
77
2
_SplashScreenState에서 storage를 late로 호출해서 한번만 불러와도 되나요?
0
86
2
코딩 작성 순서 관련 질문
0
88
2





