[ Dart&Flutter ] Dart 함수 심화 학습 – 클로저(Closure) 편
Dart 클로저(Closure) 는 함수가 자신이 만들어질 당시의 변수 상태를 기억하는 기능이에요. 보통 함수가 실행되면 내부 변수는 사라지지만, 클로저는 함수가 생성될 때의 변수 값을 계속 기억하고 사용가능. Dart Closure 외부 변수 상태를 기억기능
Korea Generation
... menit baca
🔷 개념 설명: 클로저(Closure)란 무엇인가요?
✅ 클로저란?
클로저(Closure) 는 함수가 자신이 만들어질 당시의 변수 상태를 기억하는 기능이에요. 보통 함수가 실행되면 내부 변수는 사라지지만, 클로저는 함수가 생성될 때의 변수 값을 계속 기억하고 사용할 수 있어요.
| Dart 함수 심화 학습 – 클로저(Closure) 편 |
📌 왜 클로저를 사용할까요?
-
상태 유지가 필요할 때 (예: 카운터, 점수 누적)
-
콜백 함수나 비동기 처리 시 유용
-
Flutter에서도 이벤트 핸들러로 자주 활용
🧩 클로저 동작 원리
Function makeCounter() {
int count = 0; // 이 변수를 기억해요!
return () {
count++;
print('현재 카운트: $count');
};
}
-
makeCounter() 함수가 실행되면, count 변수와 함께 익명 함수가 생성돼요.
-
생성된 함수는 count 값을 기억해서 호출될 때마다 증가시켜요.
🏆 실습 예제 1: 간단한 카운터 만들기
아래 빈칸을 채워서 클로저를 완성해보세요!
Function createCounter() {
int count = 0;
return () {
________;
print('지금까지 누른 횟수: $count');
};
}
void main() {
var counter = createCounter();
counter();
counter();
}
✨ 목표
-
함수가 호출될 때마다 count가 1씩 증가하도록 만드세요.
-
출력 예시:
지금까지 누른 횟수: 1
지금까지 누른 횟수: 2
✅ 정답 및 해설
Function createCounter() {
int count = 0;
return () {
count++; // 기억된 변수를 증가시켜요!
print('지금까지 누른 횟수: $count');
};
}
💡 해설: 클로저 함수 안에서 외부 변수 count에 접근해 값을 누적합니다.
🏆 실습 예제 2: 점수 누적 클로저 만들기
아래 코드를 완성해서 학생 점수를 누적해보세요!
Function makeScorer() {
int totalScore = 0;
return (int score) {
totalScore = totalScore + ________;
print('현재 총점: $totalScore');
};
}
void main() {
var scorer = makeScorer();
scorer(30);
scorer(20);
}
✨ 목표
-
매번 받은 점수를 누적해서 총점을 출력하세요.
-
출력 예시:
현재 총점: 30
현재 총점: 50
✅ 정답 및 해설
Function makeScorer() {
int totalScore = 0;
return (int score) {
totalScore = totalScore + score;
print('현재 총점: $totalScore');
};
}
💡 해설: 매개변수로 받은 score를 외부 변수 totalScore에 계속 더해주는 방식입니다. 이때 클로저가 totalScore 값을 기억하고 있기 때문에 누적이 가능해요.
📚 마무리 정리
|
용어 |
설명 |
|---|---|
|
클로저 |
함수가 외부 변수 상태를 기억하는 기능 |
|
활용 예 |
카운터, 점수 누적, 상태 유지 함수 |
Sebelumnya
...
Berikutnya
...