parameter
parameter, 매개변수의 정의를 살펴보자
int number(int a, int b) =>a+b;
위 함수에서 () 안의 int a, int b가 매개변수이다.
Cleric(this.name,this.mp,);
클래스 Cleric의 생성자도 매개변수 this.name과 this.mp를 가지고 있다.
함수 호출시에는 해당 매개변수에 대한 값을 전달해야 한다. 만약 값이 있을수도 있고 없을수도 있다면 [ ]를 사용하여 optional parameter로 정의할 수 있다.
int number(int a, [int b=0]) => a+b;
b가 null일 경우 연산하지 못하므로 b가 null일때의 기본값을 설정해줘야 한다.
named parameter
생성자에 {}를 사용하여 named parameter을 정의할 수 있다. 기본값은 null이 가능하며 매개변수가 필수로 전달되어야 하는 경우 앞에 required를 쓴다. 만약 optional parameter로 사용하고 싶다면 {}안에서 required를 지워주면 된다. 이름이 중요한 함수로 자리가 바뀌어도 변수가 변하지 않는다.
class Cleric{
String name;
int mp;
Cleric({required this.name, required this.mp,});
}
class Cleric{
String? name;
int mp;
Cleric({this.name, required this.mp,});
}
이 생성자를 사용하며 오브젝트를 생성할 경우 인스턴스 초기화는 조금달라진다. 예를들어 변수가 ({required.this x, required.this y, required.this z,})가 있다면 인스턴스에는 (x:10,y:20,z:30) 이렇게 한다.
class Cleric{
String name;
int mp;
Cleric({required this.name, required this.mp,});
}
void main(){
Cleric cleric = Cleric(name:'Asus',mp:100);
}