1. 함수
함수는 굳이 Dart가 아니더라도 다른 프로그래밍 언어를 배우신 분이면 함수라는 이름을 많이 들어보셨을 것 같아요 :)
함수는 특정 작업을 수행하는 코드 블록입니다.
입력을 받아서 특정 작업을 수행하고, 그 작업에 대한 결과를 반환하는 코드 블록이죠.
2. 함수의 구성 요소
반환타입 함수이름(매개변수) {
실행할 코드;
return 결과값; // 선택 사항
}
void main() {
print(add(3, 5)); // 8
}
int add(int a, int b) {
var result = a + b;
return result;
}
위 코드는 두 수를 더하는 add 함수입니다.
이제부터 함수의 구성요소를 알아볼게요!
1) 반환 타입 (int)
이 함수가 어떤 데이터 타입을 반환할 것인지를 정하는 부분이에요.
add 함수에는 두 수를 더한 값을 반환하기 때문에 int겠죠?
만약, 값을 반환하지 않는 경우에는 void로 선언해요.
main 함수의 반환 타입이 void인 것을 확인할 수 있어요!
2) 함수명 (add)
함수명은 말 그대로 함수의 이름입니다.
두 수를 더하는 함수이기 때문에 add라고 지었어요.
main함수의 add(3, 5) 보이시나요?
이 부분이 바로 함수를 실행(호출)하는 부분인데요.
이렇게 함수명으로 함수를 호출할 수 있어요.
3) 매개변수 ( int a, int b )
매개변수는 함수에 전달할 변수라고 생각하시면 됩니다.
main함수에서 add(3, 5)로 add 함수를 실행했잖아요?
여기서 3과 5를 add 함수로 전달하게 됩니다.
그러면 add함수는 각각 a와 b라는 변수명을 붙여서 a, b라는 이름으로 코드를 실행하는 것이죠.
4) 실행할 코드 ( var result = a+b; )
이것도 말 그대로 실행할 코드예요.
여기서는 var result = a+b; 부분입니다.
5) 반환 값 ( return result; )
반환 값은 함수의 코드 블록이 다 실행되고 난 후, 코드를 실행(호출 - 여기서는 main함수)한 곳에 돌려주는 값이에요.
만약 반환 값이 없다면, 즉, 함수 구성요소의 1번 반환 타입이 void라면,
어떻게 할까요?
반환 값이 없기 때문에 return을 안 적어도 됩니다.
그렇기 때문에 선택 사항이에요.
하지만, 반환 값이 있다면 반드시 return으로 값을 돌려줘야 합니다.
3. 화살표 함수
이전의 코드는 실행할 코드 부분을 이해하기 위해 result라는 변수를 사용해서 두 수를 더했지만,
굳이 result 변수가 필요 없어요.
void main() {
print(add(3, 5));
}
int add(int a, int b) {
return a + b;
}
a + b를 바로 반환하면 되거든요!
이렇게 반환값이 하나의 표현식으로 나타낼 수 있는 경우에는 { } 코드 블록 대신, => 를 사용해서 짧게 작성할 수 있어요.
void main() {
print(add(3, 5));
}
int add(int a, int b) => a + b;
함수를 실행하는 코드 블록 { } 과 return 부분이 사라진 것을 볼 수 있죠?
처음에는 낯설어 보여도 익숙해지면 짧고도 가독성 있는 코드랍니다!
4. 참고자료
https://dart.dev/language/functions
Functions
Everything about functions in Dart.
dart.dev
'Dart' 카테고리의 다른 글
[Dart] 함수형 프로그래밍 (Functional Programming) (0) | 2025.03.12 |
---|---|
[Dart] 제네릭 (Generics) - 제네릭 함수 & 클래스 (0) | 2025.03.12 |
[Dart] 열거형 (Enumerated types) (0) | 2025.03.11 |
[Dart] 컬렉션 (Collections) - List, Set, Map (0) | 2025.03.11 |