플러터를 때려칠뻔 한 챕터
나는 개발자가 아니였고, 개발자가 될지 안될지 사실 모르겠다.
플러터가 재밌어서 시작했다 사실 지금도 UI 꾸미기는 누구보다 자신있지만, 기능을 더하고 만드는건 정말 어렵다, 아마 플러터로 취업을하면 UI전담으로 할 것 같다.
(내 근본이 기획자였으니....)
그중에서 나를 첫번째 나락으로 보낸 챕터가 함수형 프로그래밍이다.....지금도 몇가지 쓰는 것만 쓰고있지만....ㅋㅋㅋ
함수형 프로그래밍
- 다트는 객체지향 프로그래밍과 함수형 프로그래밍 특징을 제공한다.
- 함수형 프로그래밍은 자료처리를 수학적 함수의 계산으로 취급하는 프로그래밍 패러다임
.map
개인적으로 많이쓴다, 특히 Navigator후에 API List를 가져와서 돌릴때 많이쓴다
(영악한 놈이라 그런지 쉽게 하는건 또 잘써먹는다)
- iterable의 요소들을 순서대로 훓으면서 map안에 넣어진 function을 돌린다.
- map안에 넣어진 function 의 요소를 인자로 갖는다.
- iterable을 대상으로 forEach를 한번 돌려준다고 생각하자.
- 안에 넣어진 함수는 return으로 하나의 위젯으로 반환해야한다. 인자값으로 iterable 의 하나의 요소를 받기 때문이다.
- map 메소드가 실행되면 iterable의 요소 수 만큼 함수가 호출된다.
- .map은 String int로 반환하는 형태이다.
ForEach
final List items = [1,2,3,4,5];
items.forEach((e) => Print(e));
items.foreach(print);
- ForEach는 안에 void를 리턴하는 함수를 작성할수있다.
- 이렇게 하면 돌다가 하나씩 e에 담기고 프린트가 된다.
- 값으로 취급이 되니까 3번째 예제처럼 바꿀수있다.
- 프린트 할때 빼고는 많이 쓰진않는다.(지극히 개인적이다)
sort
- sort 안에는 compare 규칙을 넣어줘야한다.
- 기본적으로 compare를 사용하지않으면
- Fuction으로 정의를 해줘야한다.
- sort는 Void타입 이기 때문에 값을 반환하지 않는다.
- .map 정렬에서는 compartTo()를 사용해야한다.
