realryankim블로그를 보면서 복습으로 적은 글들
List<String> isString = []; //List 만들기
List<String> isString2 = ['apple','banana']; //값 넣으면서 생성
isString2.add('파인애플'); //만든 후에 값 넣기
isString2[2].removeAt(2); //파인애플 빼기
print(isString2.length); //List크기 알아내기
List<String> isString3 = new List(3); //최대 넣을 수 있는 값을 3으로 제한
isString3.add("사과"); //Error 크기 제한시 add사용 불가
isString3.removeAt(1);//Error 크기 제한시 removeAt사용 불가
isString3[0] = '사과';
forEach
List<String> isString2 = ['apple','banana'];
isString2.forEach((value){
print(value) // 사과 바나나
});
map
void main() {
// Mapping
List<String> redVelvet = [
'아이린',
'슬기',
'웬디',
'조이',
'예리',
];
// Mapping - map
// map에서는 return 값을 받을 수 있다.
// newList는 함수 안에서 리턴해준 값들이 각각 값에 '새로운 값'으로 집어넣는다.
final newList = redVelvet.map((value) {
return '제 이름은 $value입니다.';
});
print(
newList); // (제 이름은 아이린입니다., 제 이름은 슬기입니다., 제 이름은 웬디입니다., 제 이름은 조이입니다., 제 이름은 예리입니다.)
// redVelvet List는 변경되지않았다.
print(redVelvet); // [아이린, 슬기, 웬디, 조이, 예리]
// 정리
// mapping을 하면 새로운 List를 만들 수 있는데, 원래 있는 List를 기반으로 새로운 List를 제작할 수 있다.
// 주의
// map을 사용하면 ()가 나오는 이유는 => map 위에 마우스를 올리면 => map은 Iterable을 리턴한다고 되어있다.
// Iterable을 상속(inheritance)에서 List보다 더 부모인 class라고 보면 된다.
// Iterable, ()로 나온 것을 List로 바꾸고 싶다면 'toList()'라고 함수를 실행하면 된다. ***
print(newList.toList()); // [제 이름은 아이린입니다., 제 이름은 슬기입니다., 제 이름은 웬디입니다., 제 이름은 조이입니다., 제 이름은 예리입니다.]
}
Fold
List<int> numbers = [
0,
1,
2,
3,
4,
5,
];
int total = numbers.fold(0, (total, element) {
// 각각의 값들이 element에 들어가고, looping을 할 때마다 처음에는 0부터 시작하고,
// total이라는 값은 return되는 값이 다음 looping할 때, total 값이 된다.
return total + element;
});
print(total); // 15
Map은 key
와 value
로 구성
key
는 고유한 값이여야 한다. 이미 있는 key
에 값을 넣으면 덮어 씌어진다.
dart
Map dictionary = { //맵 만들기
'apple': '사과',
'banana': '바나나',
'watermelon': '수박',
};
print(dictionary); //{apple: 사과, banana: 바나나, watermelon: 수박} //원하는 value출력
print(dictionary['apple']); //사과
dictionary.addAll({ //value 추가
'pineapple' : '파인애플',
'pear' : '배'
});
dictionary.remove('pear'); //value 제거
dictionary['apple'] = '먹어서 없음'; //value 변경
print(dictionary.keys.toList()); // Key 가져오기
print(dictionary.value.toList()); // value 가져오기