Dart-function

이선행·2024년 3월 12일

##함수의 선언과 사용방법

positional parameter

void main(){
  int result = addNumbers(1, 2, 3);
  print(result)	//6
}

//positional parameter - 순서가 중요한 파라미터
int addNumbers(int x, int y, int z){
  int sum = x + y +z;
  return sum;
}

위의 방법은 일반적으로 함수를 사용하는 방법이다
함수를 생성하고 필요한 파라미터와 함께 선언하여 함수를 실행시킨다.
x,y,z를 필수로 선언해야 addNumbers() 함수를 실행 시킬 수 있다.

optional parameter

void main(){
  int result = addNullNumbers(1);
  print(result);	 //16
  
  int result2 = addNullNumbers(1,2);
  print(result2);	//13
  
  int result3 = addNumbers(1,2,3);
  print(result3);	//6
}

//optional parameter - 있어도 되고 없어도 되는 파라미터
int addNullNumbers(int x, [int y = 5, int z = 10]){
  int sum = x + y +z;
  return sum;
}

위의 방법으로 함수를 생성할때 파라미터를 []안에 넣게되면 필수 파라미터가 아니게 된다
[int x = 5] 처럼 default값을 설정해 줘서 파라미터로 x를 받아오지 않았을떄의 값을 설정해줄 수 있고
[int? x] 처럼 default값을 설정해주지 않으면 값이 null이 되기 떄문에 nullable하다는 의미의 ?를 변수타입 뒤에 붙여줘야 한다.

named parameter

void main() {
  int result = addNumbers(x:10, y:20, z:30);
  print(result); //60
}
int addNumbers({required int x, required int y, required int z}){
  int sum = x + y +z;
  return sum;
}

이 방법으로 함수를 생성하면 파라미터 순서대로 값이 대입되는게 아니라 파라미터명을 명시해줘야 해서
오류가 발생할 확률이 적어진다.

네임드 파라미터 방식과 포지셔널 파라미터 방식은 혼합하여 사용이 가능하다.

int addNumbers(int g, {required int x, required int y, required int z}){
  int sum = x + y + z + g;
  return sum;
}

이렇게 사용하면 된다.

네임드 파라미터와 옴셔널 파라미터도 혼합하여 사용이 가능하다 []를 따로 사용하지 않고 required만 제거하고 null체크만 해주고
사용하면 된다

int addNumbers({required int x, required int y, required int z, int? g = 20}){
  int sum = x + y +z + g!;
  return sum;
}

0개의 댓글