익명함수와 화살표 함수

익명함수

dart는 리턴타입 정의 안해도 됨

dart는 메서드가 1급 객체이기 때문에 Function 타입 변수에 저장할 수 있음

Function 타입 뿐만 아니라 var, dynamic 에도 가능

변수이기 때문에 세미콜론으로 닫아줘야함

Function greet = bye() {
    print("bye");
};

위에서 Function 변수의 이름 greet으로 메서드를 찾아갈 것이기 때문에 bye라는 함수 명이 필요가 없음

Function greet = () {
    print("bye");
};

( ){ ... }; 부분이 익명 함수

화살표함수

함수가 가지고 있는 내부 스택(코드블럭 == 중괄호{ } 부분) 한줄일때 화살표 함수 사용

Function add = () {
    return 1+1;
}

int add() => 1+1; // return 키워드 생략 가능

정리

일반 메서드

int sum(){
    return 10;
}

익명함수를 저장하는 변수

  • 일반 메서드를 익명 함수로 변경해서 변수에 저장
  • 변수의 타입에 함수를 저장할 것이라면 Function(Type), var(Type), dynamic(Type)
Function sum2 = () {
    return 10;
}

화살표함수

  • 일반 메서드를 생성할때 한줄 밖에 안된다면 그냥 { }와 return을 생략하고 => 화살표 사용
int sum3() => 10;

화살표 함수를 저장하는 변수

Function sum4 = () => 10;

참고

https://www.youtube.com/watch?v=S170Po5mino&list=PL93mKxaRDidGEaUXprXqhNvSW02xCjLZI&index=9

 

728x90

'Study > Dart' 카테고리의 다른 글

[Dart] 클래스  (0) 2021.06.04
[Dart] final 과 const 차이  (0) 2021.06.04
[Dart] 반복문과 깊은 복사  (0) 2021.06.04
[Dart] 메서드(함수)  (0) 2021.06.03
[Dart] 기본자료형  (0) 2021.06.03

+ Recent posts