수색…
비고
다트는 진정한 객체 지향 언어이므로 함수도 객체이며 유형이 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)
a 및 b 가 동일한 경우 함수에서 0 반환해야한다고 설명서에 명시되어 있습니다. 이것은 반환 -1 경우 a < b 및 1 의 경우 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