일반 함수
외부의 영향을 받지 않는 것 → 함수
들어오는 값이 동일하면 나오는 값도 동일해야 → 함수
외부에 영향을 받는, 의존하는 것 → 메서드
// 함수
// 어디서든 호출 가능한 것 -> 1급 객체
void f1(){
print("f1 호출됨");
}
void f2(int n1, int n2){
print("f2 호출됨 : ${n1 * n2}");
}
int f3(int n1, int n2){
return n1 * n2;
}
void main() {
f1();
f2(5,6);
int result = f3(8,4);
print("f3 호출됨 : result = ${result}");
}

람다
바인딩
특정 요청에 따라 실행되는 이름 없는 함수를 바인딩 된 함수라고 한다
Function f1 = (){};
// 익명함수
var f2 = (){};
// 람다 문장
var f3 = () => print("f3 호출됨");
// 람다 표현식
var f4 = () => 1;
// 람다의 장점 코드가 짧아 가독성이 좋아짐
int f5(){
return 1;
}
void f6(){
print(1);
}
void main() {
}
var f2 = (){};
→ 대부분의 이름없는 함수 사용은 이렇게 하자
var f4 = () => 1;
→ 한줄로 리턴하는 경우에만 사용하자
// 버튼
class Button {
// 디자인
void onClick(Function be) {
be();
}
}
class CheckBox {
// 디자인
void onSelected(Function be) {
be();
}
}
void main() {
Button b = Button();
b.onClick(() {
print("선 그리기");
});
CheckBox ch = CheckBox();
ch.onSelected(() {
print("점 그리기");
});
}
- 행위를 전달하는 방법
이름이 있는 함수
- 코드 줄이 너무 길거나
- 재사용이 필요할 때
Share article