티스토리 뷰

반응형

예제로 배우는 Dart & Flutter 시작하기 ④ - 함수의 모든 것(기본부터 응용까지)

이전 글에서는 Dart의 조건문과 반복문을 통해 코드의 흐름을 제어하는 방법을 배웠습니다. 이번에는 프로그래밍에서 가장 중요한 개념 중 하나인 함수(function) 에 대해 배우겠습니다.

함수는 코드의 재사용성을 높이고, 프로그램의 가독성을 향상시키는 필수 요소입니다. 이번 글에서 함수의 개념부터 다양한 활용 방법까지 예제를 통해 확실히 익혀봅시다.


📌 1. 함수란 무엇인가?

함수는 특정 작업을 수행하는 코드의 묶음으로, 여러 번 반복 사용이 가능합니다. 이를 통해 코드가 깔끔해지고 중복이 줄어듭니다.


📌 2. 함수의 기본 구조

Dart에서 함수는 다음과 같은 형태로 정의합니다:

리턴타입 함수명(매개변수) {
  // 함수 본문
}
  • 리턴 타입: 함수가 반환하는 값의 타입 (반환값이 없으면 void)
  • 함수명: 함수의 이름
  • 매개변수: 함수가 입력받는 값 (필수 아님)

기본 함수 예제

// 두 숫자를 더하는 함수
int add(int a, int b) {
  return a + b;
}

void main() {
  int result = add(3, 5);
  print('결과는 $result입니다.');
}

실행 결과:

결과는 8입니다.

📌 3. 다양한 함수 형태

반응형

① 반환값이 없는 함수 (void)

반환값이 없는 함수는 작업만 수행하고 결과를 돌려주지 않습니다.

void sayHello(String name) {
  print('안녕하세요, $name님!');
}

void main() {
  sayHello('홍길동');
}

실행 결과:

안녕하세요, 홍길동님!

② 선택적 매개변수(optional parameter)

선택적 매개변수를 이용하면 일부 매개변수를 생략할 수 있습니다.

void introduce(String name, [int age = 20]) {
  print('이름: $name, 나이: $age');
}

void main() {
  introduce('홍길동');      // 나이 생략, 기본값 20 사용
  introduce('김철수', 25); // 나이 지정
}

실행 결과:

이름: 홍길동, 나이: 20
이름: 김철수, 나이: 25

③ 이름 있는 매개변수(named parameter)

이름 있는 매개변수는 매개변수의 이름을 명시적으로 지정하여 전달합니다.

void printPerson({required String name, int age = 30}) {
  print('이름: $name, 나이: $age');
}

void main() {
  printPerson(name: '홍길동');        // 나이 기본값 30 사용
  printPerson(name: '김철수', age: 27);
}

실행 결과:

이름: 홍길동, 나이: 30
이름: 김철수, 나이: 27

📌 4. 익명 함수(Anonymous Function)

익명 함수는 이름이 없는 함수로, 주로 다른 함수의 매개변수로 전달할 때 사용합니다.

void main() {
  var list = ['사과', '바나나', '딸기'];

  list.forEach((item) {
    print('과일: $item');
  });
}

실행 결과:

과일: 사과
과일: 바나나
과일: 딸기

📌 5. 화살표 함수(Arrow Function)

화살표 함수는 간단한 한 줄의 표현식을 바로 반환하는 함수입니다.

int multiply(int x, int y) => x * y;

void main() {
  print(multiply(3, 5)); // 결과: 15
}

실행 결과:

15

📌 6. 재귀 함수(Recursive Function)

자기 자신을 호출하는 함수를 재귀 함수라고 합니다. 반복문과 유사한 효과를 낼 수 있습니다.

int factorial(int n) {
  if (n <= 1) return 1;
  return n * factorial(n - 1);
}

void main() {
  print(factorial(5)); // 5! = 120
}

실행 결과:

120

📌 7. 이번 글에서 배운 내용

  • 함수의 기본 개념과 구조 이해
  • 반환값이 있는 함수와 없는 함수의 차이
  • 선택적 매개변수와 이름 있는 매개변수 사용법
  • 익명 함수와 화살표 함수 활용
  • 재귀 함수 개념과 활용법

📌 8. 다음 글 예고

다음 글에서는 Dart의 객체지향 프로그래밍(OOP)에 대한 기초를 다룹니다. 클래스와 객체의 개념, 그리고 객체지향 프로그래밍의 핵심 요소들을 명확히 이해하고 활용할 수 있도록 안내합니다.

  • 다음 글 제목:
    『예제로 배우는 Dart & Flutter 시작하기 ⑤ - 클래스와 객체 완벽 이해하기』

 

※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함
반응형