void main(){ List even = [ 2, 4, 6, 8, ]; List add = [ 1, 3, 5, 7, ]; // cascading operator // ... // 여러개의 리스트를 하나로 합칠때 많이 사용함 // 리스트 안에 값들을 풀어 넣는 역할을 함 print([even, add]); print([...even, ...add]); // 하나에 리스트 안에 값들이 펼쳐짐 // 즉 리스트를 없애고 새로운 리스트에 값들을 넣는 것임 // 그리고 이렇게 생성한 리스트는 완전히 새로운 리스트가 됨 print(even); print([...even]); print(even == [...even]); // false가 나옴 }
void main(){ // Fold 함수 /* reduce 의 단점 같은 타입을 리턴하는 것을 보안 한것임 fold 함수도 두개의 파라미터를 가짐 fold 함수는 리턴할값을 지정할수가 있음 어떤 값이 리턴될거지 정해줘야함 */ List numbers = [1,3,5,7,9]; final sum = numbers.fold(0, (prev, next) => prev + next); print(sum); // 분석 final sum2 = numbers.fold(0, (prev, next) { print("---------------"); print("previous : $prev"); print("next : $next"); print("total : ${prev + next}"); return prev +..
void main(){ // reduce 함수 List numbers = [1,3,5,7,9]; final result = numbers.reduce((prev, next) { print("-----------------------"); print("previous : $prev"); print("next : $next"); print("total : ${prev + next}"); return prev + next; }); print(result); /* reduce 에는 똑같이 함수가 들어감 단 map 함수랑 다르게 파라미터 2개 들어감 맨처음에 만 prev, next 에 원소에 첫번째, 두번째 값이 들어감 그다음 prev 값에는 return으로 정의한 값이 들어감 즉 4가 들어감 그다음 4랑 5랑 ..
Map을 Mapping 하는 방법 2가지만 기억하면됨 Map 자체를 Mapping 해서 새로운 Map을 만들때 그리고 키 값 혹은 벨류 값만 리스트 형태로 만들때 void main(){ Map harrypotter = { "Harry Potter" : "해리 포터", "Ron weasley" : "론 위즐리", "Hermione Granger" : "헤르미온느 그레인저" }; /* Map 자료형도 map 함수 사용 가능함 함수를 넣게 되는데 arrow 함수 사용 할거임 파라미터 넣어야 하는데 Map 자료형 특징은 키와 벨류 모두 넣어줌 하나가 세트니까 Map 자료형은 MapEntry 함수를 사용해서 다시 Map 형태로 돌려줌 첫번째로 key 두번째로 value 에 대한 가공할 값을 넣어주면 됨 */ fi..
// 리스트를 mapping 하는 방법 // mapping. 일반적 의미에서 매핑이랑 어떤 값을 다른 값에 대응시키는 과정 void main(){ List blackpink = ["로제", "지수", "리사", "제니"]; final newBlackPink = blackpink.map((x){ return "블랙핑크 $x"; }); /* 리스트는 모두 이 map 함수가 있음 첫번째 파라미터에 함수를 넣어줌 x 라고 아무 이름을 넣어주면 각각의 리스트 원소들을 받게되고 뭔가를 리턴 해줘야함 리턴 되는게 자기가 가진 원소를 대체 하게됨 즉 반환 값으로 현제 원소에 뭔가를 가공한게 되는 거임 하지만 자기 자신 리스트가 변경 되는게 아니라 새로운 리스트로 받게 되어 있음 다시 정리하면 기존 리스트에 원소를 가공..
// 왜 클레스를 사용하여 코딩 하는걸 oop 라고 하는가? // Object Oriented Programming // 객체지향 프로그래밍 void main(){ Test test = Test(); //test. /* 아래 클레스에서 아무것도 선언 하지 않았는데도 이미 4개의 속성이 존재하고 있음 */ } class Test extends Object{} class Test{} 위 코드는 두개가 완전 동일 한것임 왜냐 모든 class는 선언하자마자 extends Object 부분을 생략 하기 때문임 모든 class는 Object를 상속받음 그래서 모든 class의 최상위 부모는 Object 임 그리고 이 Object 라는 클래스에서 제공해주는 기능들이 아무것도 하지 않았을때 제공 해주는 4가지 기능임 ..