형 변환하는 법. = map을 이용하면 거진 서로 왔다갔다 변형 가능하다.
List =>리스트
List.asMap() => 맵
List.toSet() => 세트
Map MyMap = MyList.asMap();
MyMap.keys.toLIst();
MyMap.values.toList();
맵에서 키와 밸류는 모두 물론 리스트화 가능.
Set MySet = Set.from(MyList);
MySet.toList(); 이렇게도 바로 가능하지.
Mylist.map( (x) => 'list $x' ) 가능.
final myMap2 = Mylist.map( (x) => 'list $x' ) ;
final myMap3 = Mylist.map( (x) => 'list $x' ) ;
myMap2 != myMap3
다른 리스트 계속생성가능.
String도 나눠줄 수 있음.
String을 .split('')쓰면 파이썬 처럼 그냥 각 literal로나눌 수있음.
그리고 List로 반환됩니다.
Map을 mapping 한다면?
똑같이 map 메소드 쓸 수 있습니다.
myMap = { 'juhyeong': "man" , "easum": "man", 'ej' : 'woman' }
이라면
final result = myMap.map( (key,value) => MapEntry (
'Name: $key', "Gender: $value"
)
);
MapEntry가 맵만들어주는 중요한 클래스가 있습니다.
하지만 Map->Map 바꾸는 경우는 잘 없고, key를 가져와서 바꾸는데
( ) 괄호로 된 자료형이 나오길래, 이게 뭔가 했다. Iterable 나는 처음 마주해본다.
.Where 도 있음 (필터링이 가능하다)
map이랑 얼핏보면 비슷하지만, map은 리턴한 값들을 모아서 이터러블을 리턴한다.
그래서 map해주고 toList()를 붙여줘서 List로 바꾸었지.혹은 toSet로 세트형태로 바꾸었다.
이터러블 자체는 인덱싱이 안되어서 쓸 수 없음 ㅇㅇ
map함수는 리턴값이 True냐 False냐에 따라서 마지막 리턴이
True인값들을 모은 이터러블임.ㅇㅇㅇ
.reduce() 라면 어떨까?(피보나치 생각하면될듯)
numbers.reduce( (prev, next ) ){ 연산후 리턴}
numbers라는 리스트에서 첫번째 값과 두번째 값을 연산함
=> 그리고 prev변수에 그게 들어감.
그래서 다음 리스트 항목과 prev가 또 연산이 됨.
마치 재귀함수같이 생김 아니면 피보나치수열이거나
그런데 문제라고 하면, numbers는 <int> 자료형 리스트이기 때문에,
String을 반환을 못함.
.fold()
하지만 fold는 쓰면 타입도 자유롭게 리턴가능하다.
첫번째 파라미터는
[...yes]
cascading operator
map과 마찬가지로 완전 새로운 리스트를 만든다.
'개발 | > Flutter' 카테고리의 다른 글
[Flutter] Widget들 (추후 총정리 필요) (0) | 2022.11.02 |
---|---|
[Flutter] 오류 몇 개 & stful widget life cycle (0) | 2022.10.19 |
[Flutter] 맨처음 시작 & 디자인입히는법 살짝 (0) | 2022.10.10 |
[Flutter] Dart기본- 객지프(Obejct - Orieted - Programming) (1) | 2022.10.03 |
[Flutter] Dart언어 기본 (1) | 2022.10.03 |