Dart 함수 개념과 실전 프로젝트 적용
이번 포스팅에서는 Flutter 개발을 위한 Dart 함수의 개념을 정리하고, 실전 프로젝트에서 함수 선언과 활용 방법을 설명합니다.
1. 함수(Function)란?
함수란 특정 작업을 수행하는 코드 블록을 의미하며, 반복적인 코드 작성을 줄이고 코드의 재사용성을 높이는 역할을 합니다.
📌 함수의 기본 구조
반환타입 함수명(매개변수) {
실행할 코드;
return 반환값; // 반환값이 없으면 생략 가능
}
📌 예제: 두 수의 덧셈 함수
int add(int a, int b) {
return a + b;
}
void main() {
int result = add(3, 5);
print(result); // 8 출력
}
2. 함수의 구성 요소
- 반환 타입(Return Type): 함수가 반환하는 값의 데이터 타입 (
int
,String
,bool
등). - 함수 이름(Function Name): 함수의 역할을 나타내는 명확한 이름을 사용.
- 매개변수(Parameter): 함수가 입력받는 값. 여러 개 설정 가능.
- 로직(Logic): 함수 내부에서 실행할 코드 블록.
- 반환 값(Return Value): 함수가 실행 후 반환하는 값 (
return
사용).
3. 함수의 다양한 유형
📌 1) 기본 함수
매개변수를 받아 특정 연산을 수행하고 값을 반환하는 함수.
String greet(String name) {
return "안녕하세요, " + name + "님!";
}
void main() {
print(greet("홍길동")); // "안녕하세요, 홍길동님!" 출력
}
📌 2) 반환 값이 없는 함수 (void 함수)
반환할 값이 없는 경우 void
타입을 사용.
void printMessage(String message) {
print(message);
}
void main() {
printMessage("Flutter 공부 중!"); // "Flutter 공부 중!" 출력
}
📌 3) 포지셔널 파라미터 (위치 기반 매개변수)
매개변수의 위치가 중요하며, 입력 순서가 바뀌면 결과도 달라질 수 있음.
int subtract(int a, int b) {
return a - b;
}
void main() {
print(subtract(10, 3)); // 7 출력
print(subtract(3, 10)); // -7 출력 (순서에 따라 결과 달라짐)
}
📌 4) 네임드 파라미터 (이름 지정 매개변수)
매개변수 이름을 지정하여 가독성을 높이고, 순서에 상관없이 입력 가능.
int add({required int num1, required int num2}) {
return num1 + num2;
}
void main() {
print(add(num1: 3, num2: 5)); // 8 출력
print(add(num2: 5, num1: 3)); // 8 출력 (순서 무관)
}
📌 5) 네임드 파라미터 + 선택적 매개변수 (옵셔널 파라미터)
특정 매개변수를 입력하지 않아도 실행할 수 있도록 설정.
int multiply({required int num1, int num2 = 1}) {
return num1 * num2;
}
void main() {
print(multiply(num1: 5)); // 5 출력 (num2 기본값 1 적용)
print(multiply(num1: 5, num2: 3)); // 15 출력
}
4. 프로젝트에서 함수 적용하기
Flutter 프로젝트에서 함수를 활용하여 UI 요소의 동작을 제어할 수 있습니다.
📌 1) 카드 클릭 이벤트 함수 만들기
void onTapCard(int cardIndex) {
print("$cardIndex 번째 카드를 선택했습니다.");
}
📌 2) 클릭 이벤트를 UI에 연결
GestureDetector(
onTap: () => onTapCard(3), // 카드 3번 클릭 시 함수 실행
child: Container(
width: 100,
height: 100,
color: Colors.blue,
),
)
📌 3) 카드의 상태 변경
카드가 클릭되었을 때 상태를 변경하여 화면에 반영.
List cardFlippedState = [false, false, false, false];
void onTapCard(int cardIndex) {
setState(() {
cardFlippedState[cardIndex] = !cardFlippedState[cardIndex];
});
}
5. 결론
- 함수는 코드의 재사용성을 높이고 가독성을 향상시키는 역할을 한다.
- 포지셔널 파라미터는 입력 순서가 중요하며, 네임드 파라미터는 순서에 구애받지 않는다.
- 옵셔널 파라미터를 사용하면 일부 값을 생략할 수 있다.
- Flutter에서 함수를 활용하여 **UI 이벤트 처리와 상태 관리**를 할 수 있다.
다음 시간에는 조건문(If-Else, Switch)을 활용하여 앱의 동작을 제어하는 방법을 학습해보자! 🚀
'스파르타 코딩 클럽 내일배움캠프 6기 > [Flutter 트랙] 앱개발 종합반' 카테고리의 다른 글
[Flutter 트랙] 앱개발 종합반 1-11 - 조건문 (0) | 2025.03.04 |
---|---|
[Flutter 트랙] 앱개발 종합반 1-10 - 반복문 (0) | 2025.03.04 |
[Flutter 트랙] 앱개발 종합반 1-8 - 변수 (0) | 2025.03.04 |
[Flutter 트랙] 앱개발 종합반 1-7 - 프로젝트 열기 & 에뮬레이터 실행 (2) | 2025.03.03 |
[Flutter 트랙] 앱개발 종합반 1-6 - VS Code Extensions 추천 (2) | 2025.03.03 |