TIL: Flutter | Dart (3) 함수 - 221211

Lumpen·2022년 12월 10일
0

Dart

목록 보기
3/20

함수

다트는 완전한 객체 지향 언어다
따라서 모든 것이 객체
함수 또한 객체다

함수가 객체이기 때문에
변수가 함수를 참조할 수 있다
함수의 인자로 함수를 전달할 수도 있다

익명 함수와 람다식도 지원한다

또한 선택 매개변수를 지원한다

선택 매개 변수에는
이름이 있는 선택 매개변수와 위치적 선택 매개변수가 있다
코틀린에서도 이런 기능이 있다고 한다

선택 매개변수

이름이 있는 선택 매개변수

매개변수를 선택적으로 넘겨준다는 뜻이 아닌
넘겨줄 인자를 매개변수와 매칭해서 명확히 하겠다는 것이다

named 선택 매개변수를 사용할 경우
함수 호출 시 인자를 중괄호로 감싼 후
객체 형태로 매개변수 이름과 인자로 줄 값을 key: value 형식으로 넘긴다

위치적 선택 매개변수

매개변수의 기본 값을 선택할 수 있다
사용 시 매개변수의 위치가 중요하다

함수 정의 시 매개변수를 대괄호로 감싼 후
key = value 형식으로 매개 변수와 기본 값을 설정한다

이러한 선택 매개변수는 순서가 중요하다

익명 함수와 람다식

익명 함수를 람다 또는 클로저라고 부른다던데 조금 다른 개념이 아닌가 싶다..
하지만 아래와 같이 익명함수를 작성하면 그 자체로 클로저의 역할만 하는 것이니
틀렸다고 할 수는 없을 것 같다

익명 함수

(a, b) {a + b;};

람다식

(a, b) => a + b;

익명 함수는 함수 표현식과 같고
람다식은 화살표 함수와 같다

profile
떠돌이 생활을 하는. 실업자는 아니지만, 부랑 생활을 하는

0개의 댓글