꾸준히 하고싶은 개발자

12람다함수 본문

모두의연구소

12람다함수

프라우스 2023. 12. 12. 23:50

1급 객체

객체를 변수에 할당하거나 함수의 인수로 전달하고 함수의 반환 값으로 사용할 수있는 객체를 말한다.

특징

  1. 객체 또는 함수 변수에 저장 할 수있어야한다. → 변수에 할당 할 수있음
  2. 다른 함수의 인수로 전달 할수있어야한다 → 함수의 매개변수로 전달해야한다.
  3. 함수의 반환값으로 사용 할 수있어야한다.

Named parameters

생성자안에서 중가로를 추가해서 파라미터에 이름 강제로 추가한다.

인스턴스안에 네임드 파라미터 를 추가 할 수있다.

실습

import 'package:collection/collection.dart';

void printElement(int element){
  print(element);
}

void main(){
  List <int> list = [1,2,3,4,5];

  //패스 프린트엘리멘트 as a 인수 파라미터
  // void 함수 (int)
  list.forEach(printElement);
  list.forEach(print);


  // Iterable : 반복자
  final Iterable<int> filterList = list.where((e) =>e.isEven);
  final List<int> item = filterList.toList();

  // toList 리스트로변환하지 않으면 Iterable 로 나온다.
  print(list.where((e) =>e.isEven).toList());

  // 조건주고 리스트 변환
  print(list.where((e) => e.isEven).toList());

  //map 변환
  print(list.where((e) => e.isEven)
    .map((e) => 'e$e 번째'));

}

 

 

함수 와 메서드 차이 

class 밖에서 작성하는 함수 어디에서나 호출이 가능하다 

method : class 내부에서 작성하는 함수 선언된 class 내에서 선언된기능 을 수행

Static 붙은 method 정적인 메서드 라고 탑레벨 처럼 사용가능 

 

람다식 lambda expression

람다식 익명함수를 간결하게 표현하는 방법중하나고 간결한코드일때 사용하며

가독성 올라간다.

함수
int solution6(num num1, num num2) {
  double answer = 0;
  answer = (num1 + num2);
  return answer;
}

람다식 
int solution6(num num1, num num2) => num1 +num2;
// 리턴이 없다

함수형 프로그래밍

함수형 프로그래밍 순수함수를 조합하고 소프트웨어 방식

고계함수

다른 함수를 인자로 받거나 함수를 반환하는 함수다 .

실습

 

where

데이터 베이스 쿼리문에 where속한다.

map

원하는 형태로 데이터를 변환

 

Map :데이터 key value 구조 map 원하는 데이터 형태로 변환  

forEach

반복문 중에 하나다

reduce : 하나씩 줄이기

fold

접다 어원으로

특징

fold는 reduce 와달리 0 포함한다.

int total = numbers.fold(0,(v,e){
	return v+e;
});
  

any 있는지 없는 지확인하는 함수

bool 값으로 리턴한다.

'모두의연구소' 카테고리의 다른 글

13일비동기 동기  (0) 2023.12.13
12일디버깅  (0) 2023.12.12
11일 직렬화 역직렬화  (1) 2023.12.11
11일차 파일 다루기  (0) 2023.12.11
예외 (Exception)  (0) 2023.12.11