728x90
반응형
화살표 함수(arrow function)
Dart에서의 화살표 함수(arrow function)는 함수를 간결하게 정의하고 사용할 수 있는 특별한 문법입니다. 다른 프로그래밍 언어에서는 람다 함수 또는 람다 표현식이라 부릅니다. 기존 함수 정의와 비교하면, 화살표 함수는 간단한 함수를 더 간결하게 표현할 수 있는 표현식입니다.
=> 람다 표현식
//화살표 함수
//람다 표현식
void main() {
int num1 = 500;
int num2 = 10;
//선언부
int add(int n1, int n2) {
//구현부
return n1 + n2;
}
//구현부가 복잡하다면 람다 표현식보다 함수형식이 좋다.
//람다식 => 구현부가 간단한 것만 가능함
int add2(int n1, int n2) => n1 + n2;
int sub(int n1, int n2) => n1 - n2;
int mul(n1, n2) => n1 * n2;
int div(n1, n2) => n1 / n2;
}
//재활용 하고 싶다면 -> 함수를 만들어주면됨 => 좀더 간결하고싶다면 => 화살표함수
void main() {
int add(a, b) => a + b;
// 리스트의 각 요소를 제곱하는 화살표 함수를 작성하세요.
List<int> squareList(List<int> numbers) => numbers.map((e) => e * e).toList();
print(squareList([1, 2, 3, 4, 5])); // 출력: [1, 4, 9, 16, 25]
// 문자열 길이를 계산하는 화살표 함수를 작성하세요.
List<int> getLengths(List<String> words) =>
List.generate(words.length, (i) => words[i].length);
print(getLengths(["Dart", "Flutter", "Arrow"])); // 출력: [4, 7, 5]
// 숫자가 짝수인지 확인하는 화살표 함수를 작성하세요.
bool isEven(int number) => number % 2 == 0;
print(isEven(4)); // 출력: true
print(isEven(7)); // 출력: false
// 짝수만 필터링하는 화살표 함수를 작성하세요.
List<int> filterEvens(List<int> numbers) =>
numbers.where((element) => element % 2 == 0).toList();
print(filterEvens([1, 2, 3, 4, 5, 6])); // 출력: [2, 4, 6]
// 특정 단어를 포함한 문자열만 필터링하는 화살표 함수를 작성하세요.
List<String> filterWords(List<String> words, String keyword) =>
words.where((element) => words.contains(keyword)).toList();
print(
filterWords(["Dart is fun", "I love Flutter", "Hello World"], "Flutter"));
// 출력: ["I love Flutter"]
// 두 리스트의 곱을 계산하는 화살표 함수를 작성하세요.
List<int> multiplyLists(List<int> listA, List<int> listB) =>
List.generate(listA.length, (index) => listA[index] * listB[index]);
print(multiplyLists([1, 2, 3], [4, 5, 6])); // 출력: [4, 10, 18]
// 곱셈 클로저를 생성하는 화살표 함수를 작성하세요.
Function makeMultiplier(int factor) => (int number) => number * factor;
Function multiplier = makeMultiplier(3);
print(multiplier(5)); // 출력: 15
print(multiplier(7)); // 출력: 21
// 두 숫자 중 큰 값을 반환하는 화살표 함수를 작성하세요.
int max(int a, int b) => a >= b ? a : b;
print(max(10, 20)); // 출력: 20
// 문자열 리스트를 길이 순으로 정렬하는 화살표 함수를 작성하세요.
List<String> sortByLength(List<String> words) =>
words..sort((a, b) => a.length.compareTo(b.length));
print(sortByLength(["Flutter", "Dart", "Programming"]));
// 출력: ["Dart", "Flutter", "Programming"]
}
728x90
반응형
'Flutter' 카테고리의 다른 글
[플러터 11] Dart 클래스와 인스턴스 (0) | 2025.01.03 |
---|---|
[플러터 07] Dart 언어 함수 (0) | 2025.01.03 |
[플러터 06] Dart 연산자 (0) | 2025.01.02 |
댓글