수색…


비고

다트는 진정한 객체 지향 언어이므로 함수도 객체이며 유형이 Function입니다. 즉, 함수를 변수에 할당하거나 다른 함수에 인수로 전달할 수 있습니다. Dart 클래스의 인스턴스를 함수처럼 호출 할 수도 있습니다.

명명 된 매개 변수가있는 함수

함수를 정의 할 때 {param1, param2, ...}를 사용하여 명명 된 매개 변수를 지정하십시오.

void enableFlags({bool bold, bool hidden}) {
  // ...
}

함수를 호출 할 때 paramName을 사용하여 명명 된 매개 변수를 지정할 수 있습니다. value

enableFlags(bold: true, hidden: false);

기능 범위 지정

다트 함수는 익명으로 선언되거나 중첩 될 수 있습니다. 예를 들어 중첩 된 함수를 만들려면 기존 함수 블록 내에서 새 함수 블록을 열면됩니다.

void outerFunction() {
  
    bool innerFunction() {
        /// Does stuff
    }
}

innerFunction 함수는 이제 outerFunction 내부에서만 사용할 수 있습니다. 다른 기능은 액세스 할 수 없습니다.

Dart의 함수는 익명으로 선언 될 수도 있습니다.이 함수는 일반적으로 함수 인수로 사용됩니다. 일반적인 예는 List 객체의 sort 메서드입니다. 이 메소드는 다음 시그너처와 함께 선택적 인수를 취합니다.

int compare(E a, E b)

ab 가 동일한 경우 함수에서 0 반환해야한다고 설명서에 명시되어 있습니다. 이것은 반환 -1 경우 a < b1 의 경우 a > b .

이것을 알면 익명 함수를 사용하여 정수 목록을 정렬 할 수 있습니다.

List<int> numbers = [4,1,3,5,7];

numbers.sort((int a, int b) {
   if(a == b) {
      return 0;
   } else if (a < b) {
      return -1;
   } else {
      return 1;
   }
});

익명 함수는 다음과 같은 식별자에 바인딩 될 수도 있습니다.

Function intSorter = (int a, int b) {
   if(a == b) {
      return 0;
   } else if (a < b) {
      return -1;
   } else {
      return 1;
   }
}

일반 변수로 사용됩니다.

numbers.sort(intSorter);


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow