프로그래밍을 하다 보면 필수적으로 사용자 요구에 맞는 함수를 구성해야 할 필요가 있다.
물론 Dart 또한 함수를 만들고 활용이 가능하다.
이번 글에서는 함수를 만드는 방법에 관련해서 알아보기로 한다.
1. 기본 활용 방법
함수 이름 앞에 return 될 데이터 타입을 명시한 후 함수 이름을 입력한다. (return 값이 없는 경우: void)
그 후, 소괄호 안에 입력 받을 파라미터를 입력한다.
이 때, 입력 받을 매개 변수의 데이터 타입을 명시해도 되고, 명시하지 않아도 된다.
하지만, 명시하는 쪽이 프로그래밍 중 오류를 찾아내기 더 쉬워 보인다.
그 다음, 중괄호 내 표현식을 만들어 준다.
String test(String name) => "Hello, $name";
void main() {
var result = test("chunws");
print(result); // Hello, chunws
}
2. 함수 내용이 한 줄 일 때
위의 예제처럼 Return 될 내용이 한 줄 인 경우, 중괄호를 생략하고, 화살표 ( => ) 로 표현할 수 있다.
String test(String name) {
return "Hello, $name";
}
void main() {
var result = test("chunws");
print(result); // Hello, chunws
}
3. 매개 변수 이름 지정
함수가 받아야 하는 매개 변수가 1개 뿐이라면 함수 사용 시 매개 변수 입력을 혼동할 경우는 거의 없을 것이다.
하지만, 함수가 받아야 하는 매개 변수가 3개, 4개 등 많아 질 수록 이를 기억하기는 어려울 것이다.
물론, 매개 변수 이름을 지정하지 않아도 된다.
예를 들면
String test(String name, int age) {
return "Hi, $name, you $age years old";
}
void main() {
var result = test("chunws", 10)
print(result); // Hi, chunws, you 10 years old
}
위와 같이, 매개 변수의 순서에 맞게 데이터를 입력하면 된다.
단, 이 방법은 매개 변수를 입력할 때 순서를 반드시 준수해야 한다.
입력에 구애받지 않고 작성하기 위해서는 아래와 같이 수정한다.
// 매개 변수 기본 값이 없을 때
String test({String? name, int? age}) {
return "Hi, $name, you $age years old";
}
void main() {
var result = test(
age : 10,
name : "chunws",
);
print(result);
}
// 매개 변수 기본 값이 있을 때
String test({String name = "aaa" , int age = 1}) {
return "Hi, $name, you $age years old";
}
void main() {
var result = test(
age : 10,
name : "chunws",
);
print(result);
}
먼저, 함수에서 매개 변수를 받는 부분을 중괄호로 덮어준다.
그 다음 매개 변수가 null 이 되는 것을 허용할 것인지 (사용자로부터 입력을 받지 못한 경우)를 정해줘야 하는데,
null 이 되는 것을 허락하는 경우에는 자료형 뒤에 ?를 추가해서 해당 매개 변수는 null이 될 수 있다고 명시하고,
그렇지 않은 경우에는 ?를 추가하는 대신에, 기본이 될 값을 입력한다.
위와 같은 방식으로 매개 변수 이름을 명시할 수 있으며, 이렇게 만든 함수는 매개 변수 입력 순서를 지키지 않아도 정상 동작한다.
'App > Dart' 카테고리의 다른 글
[Dart] 자료형과 자료구조 알아보기 (1) | 2024.08.27 |
---|---|
[Dart] 변수 타입 알아보기 (0) | 2024.08.26 |