[Dart] 7장 매개변수와 반환값

1. 매개변수

Dart는 객체 지향 프로그래밍 언어로, 함수에 매개변수를 전달하고, 함수에서 값을 반환하는 기능을 제공합니다. 함수에서 매개변수는 함수가 호출될 때 전달되는 값을 받는 변수입니다.

void greet(String name) {
  print("Hello, $name!");
}

void main() {
  greet("Alice"); // Result: Hello, Alice!
}

 

여러 개의 매개변수도 정의할 수 있습니다.

void add(int a, int b) {
  print("Sum: ${a + b}");
}

void main() {
  add(5, 3); // result: 8
}

2. 선택적 매개변수 

Dart에서는 선택적 매개변수를 사용할 수 있습니다. 선택적 매개변수는 기본값을 가질 수 있습니다. 

  • 선택적 위치 매개변수

대괄호 [ ]를 사용하여 정의합니다.

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

void main() {
  greet("Alice"); // result: Hello, Alice!
  greet("Bob", "Hello"); // result: Hello, Bob!
}
  • 선택적 명명 매개변수

중괄호 { }를 사용하여 정의합니다. 이 경우 매개변수에 기본값을 설정할 수 있습니다.

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

void main() {
  greet(); // result: Hello, Guest!
  greet(name: "Alice"); // result: Hello, Alice!
  greet(name: "Bob", greeting: 'Hi'); // result: Hi, Bob!
}

3. 반환값

함수는 값을 반환할 수 있으며, 반환 타입을 명시해야 합니다. 반환 타입이 없으면 void를 사용합니다.

  • 기본 반환값
int add(int a, int b) {
  return a + b;
}

void main() {
  var sum = add(5, 3);
  print('Sum: $sum'); // result: Sum: 8
}
  • 여러 반환값

Dart에서는 List나 Map과 같은 컬렉션을 사용하 여러 값을 반환할 수 있습니다.

List<int> calculate(int a, int b) {
  return [a + b, a - b];
}

void main() {
  var results = calculate(5, 3);
  print(
    'Sum: ${results[0]}, Difference: ${results[1]}',
  ); // result: Sum: 8, Difference: 2
}

4. 비동기 함수와 반환값 

Dart에서는 비동기 함수도 지원합니다. 비동기 함수는 Future를 반환할 수 있습니다.

Future<String> fetchData() async {
  // 비동기 작업 시뮬레이션
  await Future.delayed(Duration(seconds: 2));
  return 'Data Fetched!';
}

void main() async {
  var data = await fetchData();
  print(data); // Result: Data fetched!
}

 

 

GitHub - Koras02/dart-bloging

Contribute to Koras02/dart-bloging development by creating an account on GitHub.

github.com

 

LIST

'Mobile > Dart' 카테고리의 다른 글

[Dart] 8장 익명 함수 및 고차 함수  (0) 2025.03.31
[Dart] 6장 함수 정의 및 호출  (0) 2025.03.18
[Dart] 5장 반복문  (0) 2025.03.10
[Dart] 4장 조건문  (0) 2025.03.07
[Dart] 3장 연산자  (0) 2025.03.01