dart에서 함수 구조
반환타입 함수명(파라미터){
//함수내용
}
함수가 한 줄 뿐이면 fat arrow function으로 간결하게 작성할 수도 있다.
String func1(name) => "my name is $name";
dart의 함수는 named parameter를 사용할 수 있다.
String introduce(String name, int age, String country){
return "my name is $name, I'm $age years old. I'm from $country";
}
라는 함수가 있다고 할 때, 사용자는 파라미터의 종류와 순서를 계속 기억하고 있어야 한다.
이런 불편함을 해결하기 위하여 named parameter를 사용한다.
String introduce({String name, int age, String country}){
return "my name is $name, I'm $age years old. I'm from $country";
}
void main(){
print(introduce(
name : "jinjin",
age : 25,
country : "seoul",
)); // 이렇게 named parameter를 사용하여 매개변수의 사용성을 높일 수 있다.
}
하지만 dart는 null-safety가 적용되어 있어서 사용자가 파라미터를 작성하지 않았을수도 있음에 에러를 표시한다.
이를 해결하기 위해서는 두가지 방법이 존재한다.
첫번째는 매개변수의 기본 값을 지정하는 것이다.
String introduce({
String name = "jinjin",
int age = 25,
String country = "seoul",
}){
return "my name is $name, I'm $age years old. I'm from $country";
}
void main(){
print(introduce()); // 기본 값을 지정해두면 매개변수가 없어도 에러가 나지 않는다
// my name is jinjin, I'm 25 years old. I'm from seoul
}
두번째는 매개변수의 필수 값 지정을 하는 것이다.
String introduce({
required String name,
required int age,
required String country,
}){
return "my name is $name, I'm $age years old. I'm from $country";
}
void main(){
print(introduce()); // 필수 매개변수를 입력하지 않은 함수 사용은 에러를 발생한다.
}