다트에서 함수(Function)를 정의하는 방법은?
_____A: 다트에서 함수는 다음과 같이 정의합니다.
```dart
반환타입 함수이름(매개변수목록) {
// 함수 본문
return 반환값;
}
```
예를 들어:
```dart
int add(int a, int b) {
return a + b;
}
```
Q: 반환 타입이 없는 함수는 어떻게 정의하나요?
A: 반환 타입이 없는 함수는 반환 타입으로 `void`를 사용하거나 생략할 수 있습니다.
```dart
void greet(String name) {
print('Hello, $name!');
}
// 또는
greet(String name) {
print('Hello, $name!');
}
```
Q: 매개변수 없이도 함수를 만들 수 있나요?
A: 네, 매개변수가 없는 함수도 가능합니다.
```dart
void sayHello() {
print('Hello!');
}
```
Q: 선택적 매개변수는 어떻게 정의하나요?
A: 다트에서는 위치 선택적 매개변수와 이름 선택적 매개변수를 지원합니다.
- 위치 선택적 매개변수: 대괄호(`[]`)로 감쌉니다.
```dart
void printInfo(String name, [int? age]) {
print('Name: $name');
if (age != null) {
print('Age: $age');
}
}
```
- 이름 선택적 매개변수: 중괄호(`{}`)로 감싸고 기본값을 지정할 수 있습니다.
```dart
void printInfo({required String name, int age = 0}) {
print('Name: $name, Age: $age');
}
Q: 화살표 함수(단일 표현식 함수)는 무엇이고 어떻게 작성하나요?
A: 화살표 함수는 함수 몸체가 하나의 표현식일 때 간결하게 작성하는 방법입니다.
```dart
int square(int x) => x * x;
```
Q: 익명 함수(람다)를 정의하는 방법은?
A: 이름 없이 함수 리터럴 형태로 정의하고 변수에 할당하거나 인자로 전달할 수 있습니다.
```dart
var increment = (int x) => x + 1;
List
var doubled = numbers.map((n) => n * 2);
```
Q: 함수 매개변수에 기본값을 설정하는 방법은?
A: 선택적 위치 또는 이름 매개변수에 기본값을 지정할 수 있습니다.
```dart
void greet(String name, {String salutation = 'Hello'}) {
print('$salutation, $name!');
}
```
Q: 함수 내에서 매개변수에 `required` 키워드가 의미하는 것은?
A: 이름 선택적 매개변수에 `required` 키워드를 쓰면 호출 시 반드시 값을 전달해야 합니다.
```dart
void showUser({required String name, int age = 0}) {
print('$name is $age years old.');
}
```
Q: 다트에서 콜렉션을 반환하는 함수는 어떻게 정의할 수 있나요?
A: 일반적인 함수와 동일하며 반환 타입으로 `List`, `Set`, `Map` 등을 지정합니다.
```dart
List
return List
}
```
Q: 비동기 함수(Async 함수)는 어떻게 정의하나요?
A: 함수 선언 뒤에 `async` 키워드를 추가하고, 반환 타입을 `Future
```dart
Future
// 비동기 작업
return 'Data loaded';
}
```
---
이상으로 다트에서 함수 정의하는 다양한 방법 및 옵션에 대해 FAQ 형식으로 설명드렸습니다.
함수는 특정 작업을 수행하는 코드 블록으로, 재사용 가능성을 높이고 코드의 가독성을 향상시키는 데 도움을 줍니다.
아래에서는 다트에서 함수를 정의하는 방법에 대해 자세히 설명하겠습니다.
1. 기본 함수 정의 다트에서 함수를 정의하려면 `returnType`(반환 타입), `functionName`(함수 이름), 그리고 `parameters`(매개변수)를 사용하여 함수의 구조를 만듭니다.
기본적인 함수 정의의 형식은 다음과 같습니다: ```dart returnType functionName(parameterType parameterName) { // 함수의 본문 // 작업 수행 return value; // 반환값 (필요한 경우) } ``` 예를 들어, 두 숫자를 더하는 함수를 정의해 보겠습니다: ```dart int add(int a, int b) { return a + b; } ``` 위의 예제에서 `add` 함수는 두 개의 정수 매개변수를 받아서 그 합을 반환합니다.
2. 반환 타입이 없는 함수 반환값이 필요 없는 경우 `void`를 반환 타입으로 사용할 수 있습니다.
예를 들어, 메시지를 출력하는 함수를 정의할 수 있습니다: ```dart void printMessage(String message) { print(message); } ```
3. 선택적 매개변수 다트에서는 선택적 매개변수를 정의할 수 있습니다.
선택적 매개변수는 기본값을 가질 수 있으며, 함수 호출 시 생략할 수 있습니다.
선택적 매개변수는 대괄호 `[]`로 감싸서 정의합니다.
```dart void greet(String name, [String greeting = 'Hello']) { print('$greeting, $name!'); } ``` 위의 예제에서 `greet` 함수는 `name` 매개변수는 필수이고, `greeting` 매개변수는 선택적입니다.
기본값으로 'Hello'가 설정되어 있습니다.
4. 명명된 매개변수 명명된 매개변수는 중괄호 `{}`로 감싸서 정의하며, 함수 호출 시 매개변수의 이름을 명시하여 값을 전달할 수 있습니다.
이는 가독성을 높이는 데 유용합니다.
```dart void createUser({required String name, int age = 18}) { print('Name: $name, Age: $age'); } ``` 위의 예제에서 `createUser` 함수는 `name` 매개변수를 필수로 요구하며, `age`는 선택적입니다.
함수 호출 시 다음과 같이 사용할 수 있습니다: ```dart createUser(name: 'Alice', age: 30); createUser(name: 'Bob'); // age는 기본값인 18로 설정됨 ```
5. 화살표 함수 다트에서는 간단한 함수의 경우 화살표 함수(arrow function)를 사용할 수 있습니다.
화살표 함수는 중괄호 대신 `=>` 기호를 사용하여 정의합니다.
이 경우 함수 본문이 단일 표현식이어야 하며, 자동으로 그 결과가 반환됩니다.
```dart int multiply(int a, int b) => a * b; ```
6. 고차 함수 다트에서는 함수를 다른 함수의 매개변수로 전달하거나, 함수에서 함수를 반환할 수 있습니다.
이를 고차 함수라고 합니다.
예를 들어, 리스트의 각 요소에 대해 특정 작업을 수행하는 함수를 정의할 수 있습니다.
```dart void processList(List
2)); ``` 결론 다트에서 함수를 정의하는 방법은 다양하며, 기본적인 함수 정의부터 선택적 매개변수, 명명된 매개변수, 화살표 함수, 고차 함수까지 여러 가지 방식으로 활용할 수 있습니다.
이러한 기능들은 코드의 재사용성을 높이고 가독성을 향상시키는 데 큰 도움이 됩니다.
다트를 사용하여 다양한 함수를 정의하고 활용해 보세요!
작성자:
정하율 [비회원]
| 작성일자: 1년 전
2024-09-19 01:52:33
조회수: 165 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 165 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.