[Dart] Functions and Named parameter

AI·2023년 10월 31일
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, 
        ));
}
  1. required modifier이용
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이용하자.

0개의 댓글