본문 바로가기
프로그램 개발해서 돈벌기/flutter

8. 함수(function) 만드는 과정 - 완전 초보 Dart 언어 기초 문법 : flutter

by ubmuhan 2022. 12. 23.
반응형

사용 툴 - DartPad

https://dartpad.dev/

 

DartPad

 

dartpad.dev

DartPad 정보 : Based on Flutter 3.3.10 Dart SDK 2.18.6

 

함수는 반복 사용하는 로직을 묶어 공통으로 사용할 수 있게 해 줍니다.

아래와 같이 1부터 10까지 더하기와 1부터 100까지 더하는 코드가 있습니다.

void main() {
  int nSum = 0;
  
  for(int i = 1; i <= 10; i++) {
    nSum = nSum + i;
  }
  print(nSum);
  // >> 55
  
  nSum = 0;
  for(int j = 1; j <= 100; j++) {
    nSum = nSum + j;
  }
  print(nSum);
  // >> 5050
}

 

위 코드에서 10까지 더하는 부분은 add_10() 함수로 만들고 100까지 더하는 부분은 add_100() 함수로 만들 수 있습니다.

void main() {
  add_10();
  add_100();
}

add_10() {
  int nSum = 0;
  for(int i = 1; i <= 10; i++) {
    nSum = nSum + i;
  }
  print(nSum);
  // >> 55
}

add_100() {
  int nSum = 0;
  for(int j = 1; j <= 100; j++) {
    nSum = nSum + j;
  }
  print(nSum);
  // >> 5050
}

 

아래 코드와 같이 add_10() 함수와 add_100() 함수를 함수로 값을 넘겨 주는 인자 값(파라미터)을 사용해서 한 함수로 만들 수 있습니다.

void main() {
  add(10);
  // >> 55
  
  add(100);
  // >> 5050
}

add(int nLimit) {
  int nSum = 0;
  for(int i = 1; i <= nLimit; i++) {
    nSum = nSum + i;
  }
  print(nSum);
}

 

add(int nLimit) 함수에서 결과 값을 받아서 main() 함수에서 출력할 수 있습니다.

void main() {
  int nMainSum = 0;
  nMainSum = add(10);
  print(nMainSum);
  // >> 55
  
  nMainSum = add(100);
  print(nMainSum);
  // >> 5050
}

int add(int nLimit) {
  int nSum = 0;
  for(int i = 1; i <= nLimit; i++) {
    nSum = nSum + i;
  }
  return nSum;
}

함수를 만드는 과정 대략적으로 위 코드들과 같이 진행됩니다.

 

 

 

함수 인자 (function parameter) 종류

  1. Required parameter
    위 코드에서 사용한 함수가 일반적인 경우입니다.
    add(int nLimit, String strName, int nAge, int nBirth);
    위 add 함수를 호출할때는 반드시 파라미터 순서와 타입에 맞게 값을 전달해야 합니다.
  2. Optional parameter
    1. Optional positional parameter
      add(int nLimit, String strName, int nAge, [int nBirth]);
      위 함수와 같이 nBirth를 []로 감싸면 nBirth는 호출해도 되고 안해도 되는 파라미터가 됩니다.
      즉 add 파라이터를 4개 다 전달해도 되고 nBirth를 빼고 3개만 전달해도 됩니다.
    2. Optional Default Parameter
      Optional positional parameter에서 []로 감싼 nBirth 파라미터에 default 값을 할당해 줄수 있습니다.
      add(int nLimit, String strName, int nAge, [int nBirth = 2020]);
      add 함수에 4가지 파라미터 값을 전달하면 nBirth는 전달 받은 값이 할당됩니다.
      만약 add 함수에 nBirth는 빼고 3가지 파라미터만 전달이 되면 default로 할당한 2020이 할당됩니다.
    3. Optional Named Parameter
      add( int nLimit, String strName, {int nAge, int nBirth} );
      함수 파라이터를 {}로 감싸는 형식입니다.
      add 함수 사용법은 add(10, "John"); 또는 add(10, "John", nAge : 2, nBirth = 2020); 이렇게 호출할 수 있습니다.
      그리고 add(10, "John", nBirth = 2020, nAge : 2); 처럼 {} 내 파리미터들은 순서를 바꾸어도 상관이 없습니다.
      이름과 할당할 타입만 정확히 일치하면 됩니다.

 

 

 
 
 
반응형

댓글