parameter과 named parameter

Kim Da HEE·2023년 12월 2일
0

Dart 언어

목록 보기
4/11

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로 정의할 수 있다.

  • 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,});
}
  • optional parameter
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);
}

0개의 댓글