Dart에서는 함수 타입을 정의하기 위해 typedef를 사용할 수 있습니다. typedef를 사용하면 함수의 타입을 명확하게 표현할 수 있어 가독성이 높아지고, 특정 타입을 가진 함수를 많이 사용하는 경우 간결한 코드를 작성할 수 있습니다.
Dart의 typedef
list 혹은 map, set 등의 타입으로 함수의 반환값을 정하면 그 구조가 복잡해질 수 있습니다. typedef는 함수 타입을 미리 정의 해 놓음으로써 복잡한 구조의 타입을 미리 정의하여 재사용성을 높일 수 있습니다.
아래는 문자열로 된 리스트를 반환값으로 가지는 예시입니다.
List<String> reverseListOfName(List<String> list) {
var reversed = list.reversed;
return reversed.toList();
}
void main() {
var data = ['john','mike','tom'];
print(reverseListOfNumbers(data));
}
위 코드에서 List<String>을 typedef로 정의하여, 보다 간단히 함수를 정의할 수 있습니다.
typedef 사용 방법
typedef를 사용하기 위해서는 다음과 같은 구문을 사용합니다.
typedef 유형 이름 = 함수 타입;
위의 List<String>을 함수의 타입으로 정의하고 싶다면 다음과 같이 정의할 수 있습니다.
typedef ListOfString = List<String>;
이제 ListOfString 타입의 함수를 정의하고 사용할 수 있습니다.
typedef ListOfString = List<String>;
ListOfString reverseListOfName(ListOfString list) {
var reversed = list.reversed;
return reversed.toList();
}
void main() {
var data = ['john','mike','tom'];
print(reverseListOfName(data));
}
입력한 이름 데이터가 정의된 함수에 따라 반대로 출력된 결과입니다.
typedef 의 장단점
typedef를 사용하면 함수의 타입을 명확하게 표현할 수 있어 가독성이 높아집니다. 또한, 특정 타입을 가진 함수를 많이 사용하는 경우 간결한 코드를 작성할 수 있습니다. 하지만, typedef를 사용할 때 명시적으로 타입을 정의해야 하므로 개발자가 추가적인 코드를 작성해야 할 수도 있습니다.
그러나, Dart의 경우 강력한 제네릭 기능을 갖추고 있어 타입을 명시적으로 정의하지 않아도 되는 경우도 많습니다. 따라서, typedef를 사용하는 것이 필요한 경우에만 사용하면 됩니다.
마무리
Dart에서 typedef를 사용하여 함수 타입을 정의할 수 있으며, 강력한 제네릭 기능을 갖추고 있어 타입을 명시적으로 정의하지 않아도 되는 경우도 있습니다. 필요한 경우에만 사용하면 됩니다.
오늘도 행복한 코딩생활 되시길 바라겠습니다.
감사합니다.
'개발 > Dart' 카테고리의 다른 글
Dart 기본 - 19. class 생성자, this 키워드 의미 및 사용방법 (0) | 2023.02.12 |
---|---|
Dart 기본 - 18. class 기본, 객체지향 프로그래밍의 기초 (0) | 2023.02.06 |
Dart 기본 - 16. QQ 연산자 사용 방법, 삼항연산자보다 간편하게 쓰기 (0) | 2023.02.04 |
Dart 기본 - 15. Optional Parameters 와 Positional Parmeters (0) | 2023.02.02 |
Dart 기본 - 14. named parameter, required 사용 방법 (0) | 2023.02.01 |
댓글