void sayHello(String name){
print("Hello $name nice to meet you!");
}
void : return X
String sayHello(String name){
return "Hello $name nice to meet you!";
}
실행을 위해서는 main내부에 작성해줘야 한다.
String sayHello(String name){
return "Hello $name nice to meet you!";
}
void main(){
print(sayHello('dart'));
}
code가 한줄짜리라면 fat arrow syntax를 사용해서 짤 수 있다.
String sayHello(String name) => "Hello $name nice to meet you!";
void main(){
print(sayHello('dart'));
}
num plus(num a, num b) => a+b;
positional parameter
String sayHello(String name, int age, String country){
return "Hello $name, you are $age, and you come from $country";
}
void main(){
print(sayHello('dart', 19, 'computer'));
}
위에 방법은 parameter를 순서대로 작성해야 하기에 좋은 방법이 아니기에 name argument를 이용한다. 다시 코드를 볼 때도 어떤 순서로 작성했는지 알지 못한다는 단점도 가지고 있다. 최대 3개까지는 작성할 수도 있지만 그 이상을 넘어가면 named argument사용을 추천한다.
named parameter
String sayHello({String name, int age, String country}){
return "Hello $name, you are $age, and you come from $country";
}
void main(){
print(sayHello(
age:12,
country:'computer',
name:'dart',
));
}
순서는 상관없이 argument의 이름들만 작성해주면 된다. 대신 name:'dart'를 'dart'이렇게는 작성할 수 없다.
값이 null일 경우에 두가지 옵션이 있다.
1. name argument에 default value 정하기
String sayHello({String name='anon', int age=99, String country='wakanda'}){
return "Hello $name, you are $age, and you come from $country";
}
void main(){
print(sayHello(
age:12,
));
}
String sayHello({
required String name,
required int age,
required String country,
}) {
return "Hello $name, you are $age, and you come from $country";
}
void main(){
sayHello();
}
sayHello();만 작성하면 required를 전부 작성하라고 뜬다. 그렇기에 빠뜨리지 않고 모든 parameter를 작성할 수 있게 된다.
login과 같이 사용자가 데이터를 전달하지 않으면 작동하지 않는 functions경우에는 default value를 줄 수 없으므로 required modifier이용하자.