[Dart 기초17] 함수

코덩이·2023년 5월 13일
0

Dart

목록 보기
17/18

함수

  • positional parameter
void main() {
  addNumbers(10, 20, 40);
  
  addNumbers(20, 30, 40);
  
  addNumbers(30);
  
}

// 세개의 숫자 (x, y, z)를 더하고 짝수인지 홀수인지 알려주는 함수
// parameter / argument - 매개변수

// positional parameter - 순서가 중요한 파라미터
// optional parameter - 있어도 되고 없어도 되는 파라미터

// [] 대괄호를 파라미터에 넣어주면 옵션
// null이 들어갈 수도 있게 작성
// 그러나 null은 숫자연산이 불가능하므로 
// int? 파라미터를 넣는대신 초기값을 설정해주는 것으로 오류를 해결

void addNumbers(int x, [int y = 0, int z = 0]) {
// void addNumbers(int x, [int? y = 0, int? z = 0]) {  
  int sum = x + y + z;
  
  print('x : $x');
  print('y : $y');
  print('z : $z');
  
  if(sum % 2 == 0){
    print('짝수입니다.');
  } else {
    print('홀수입니다.');
  }
}
  • named parameter
  • 파라미터에 중괄호를 넣어준다
void main() {
  addNumbers(x: 10, y: 20, z: 40);
  
  addNumbers(x: 30, y: 40);
  
}

// named parameter - 이름이 있는 파라미터 (순서가 중요하지 않다.)

void addNumbers({
  required int x,
  required int y,
  int z = 0, // optional parameter 
  // 없어도 되는 파라미터. 대신 기본값을 넣어줌
}){
  int sum = x + y + z;
  
  print('x : $x');
  print('y : $y');
  print('z : $z');
  
  if(sum % 2 == 0){
    print('짝수입니다.');
  } else {
    print('홀수입니다.');
  }
}

return 타입

  • void : 아무것도 반환하지 않는다. (생략가능)
  • int 등 타입 : 해당 타입을 반환한다.
void main() {
  int result = addNumbers(x: 10, y: 20, z: 40);
  
  addNumbers(x: 30, y: 40);
  
  print('sum : $result');
}

int addNumbers({
  required int x,
  required int y,
  int z = 0,
}){
  int sum = x + y + z;
  
  print('x : $x');
  print('y : $y');
  print('z : $z');
 
  return sum;
}

화살표함수

void main() {
  int result = addNumbers(10, y: 20, z: 40);
  
  addNumbers(30, y: 40);
  
  print('sum : $result');
}

// 화살표함수 
// 바로다음에 오는 값이 반환값이다.
int addNumbers(int x,{
  required int y,
  int z = 0,
}) => x + y + z;
profile
개발공부중

0개의 댓글