본문 바로가기
프로그래밍/Dart

[Dart] 3. Dart의 "기본 문법"

by iwbap 2024. 6. 19.
728x90

Dart 학습: 함수

함수는 코드의 재사용성을 높이고, 프로그램의 구조를 명확하게 만드는 중요한 요소입니다. 이번 글에서는 함수 정의와 호출, 함수의 반환형과 인자 처리, 람다 함수에 대해 알아보겠습니다.


1. 함수 정의와 호출: 함수 선언과 호출 방법

Dart에서 함수는 returnType functionName(parameters) { ... } 형식으로 정의합니다. 함수를 정의하고 호출하는 방법을 살펴보겠습니다.

 

함수 정의 예제:

[dart]
 
void greet() {
  print('Hello, World!');
}
 

위의 예제에서 greet 함수는 void 반환형을 가지며, 인자가 없습니다. 이 함수는 "Hello, World!"를 출력합니다.

 

 

함수 호출 예제:

[dart]
 
void main() {
  greet();  // 함수 호출
}
 

위의 예제에서 greet 함수를 호출하여 "Hello, World!"를 출력합니다.


2. 반환값과 매개변수: 함수의 반환형과 인자 처리

함수는 특정 작업을 수행하고 결과를 반환할 수 있습니다. 또한, 매개변수를 통해 값을 함수에 전달할 수 있습니다.

 

반환값이 있는 함수 예제:

[dart]
 
int add(int a, int b) {
  return a + b;
}
 

위의 예제에서 add 함수는 두 정수를 더한 값을 반환합니다. int 반환형을 가지며, 두 개의 int 매개변수를 받습니다.

 

 

매개변수가 있는 함수 호출 예제:

[dart]
 
void main() {
  int result = add(3, 5);
  print(result);  // 8 출력
}
 

위의 예제에서 add 함수를 호출하여 3과 5를 더한 결과를 출력합니다.

 

 

기본값을 가지는 매개변수 예제:

[dart]
 
void greet(String name, [String greeting = 'Hello']) {
  print('$greeting, $name!');
}

void main() {
  greet('Alice');             // Hello, Alice! 출력
  greet('Bob', 'Goodbye');    // Goodbye, Bob! 출력
}
 

위의 예제에서 greet 함수는 두 개의 매개변수를 가지며, 두 번째 매개변수는 기본값을 가질 수 있습니다.


3. 람다 함수: 익명 함수의 사용

람다 함수(익명 함수)는 이름 없이 정의된 함수로, 간단한 작업을 수행할 때 유용합니다. 람다 함수는 => 문법을 사용하여 간단하게 정의할 수 있습니다.

 

람다 함수 예제:

[dart]
 
void main() {
  var add = (int a, int b) => a + b;

  print(add(3, 5));  // 8 출력
}
 

위의 예제에서 add 변수는 두 정수를 더하는 람다 함수를 참조합니다. => 문법을 사용하여 간결하게 정의됩니다.

 

 

컬렉션 메서드와 람다 함수 예제 : 람다 함수는 컬렉션 메서드와 함께 자주 사용됩니다. 예를 들어, 리스트의 각 요소를 변환하거나 필터링할 때 유용합니다.

[dart]
 
void main() {
  List<int> numbers = [1, 2, 3, 4, 5];

  // 각 요소를 제곱하는 람다 함수 사용
  var squares = numbers.map((n) => n * n).toList();
  print(squares);  // [1, 4, 9, 16, 25] 출력

  // 짝수만 필터링하는 람다 함수 사용
  var evens = numbers.where((n) => n % 2 == 0).toList();
  print(evens);  // [2, 4] 출력
}
 

위의 예제에서 map 메서드와 where 메서드는 각각 리스트의 요소를 변환하고 필터링하기 위해 람다 함수를 사용합니다.


이 글에서는 Dart의 함수에 대해 알아보았습니다. 함수 정의와 호출, 함수의 반환형과 인자 처리, 람다 함수를 이해하고 활용하면 더 효율적이고 구조적인 코드를 작성할 수 있습니다. 다음 단계에서는 객체 지향 프로그래밍에 대해 학습해보세요. Happy Coding!

728x90