[TIL] 2022-06-06 Dart Language - #14

Jongdroid·2022년 6월 6일
0

TIL

목록 보기
14/24
post-thumbnail

오늘의 키워드는 Function 입니다.

거두절미 하고 바로 시작하겠습니다!!


Function을 호칭하는 단어는 함수, 메소드 등이 존재합니다.

함수를 사용하는 이유를 생각해보면, 모든 코드를 메인 함수에 담게 되면 어떻게 될까요?
코드가 지저분해지고 알아보기가 힘들 것입니다. 코드를 설계할 때 특정 디자인 패턴, 아키텍처를 따르기도 합니다.

이와 별개로 특정 기능을 하는 함수를 개발자가 별도로 함수를 정의하여 관리하는 것이 유지보수 측면에서 이점이 클 것입니다.


본격적으로 함수를 사용해봅시다!!

Hello Function!

하단의 함수를 main 함수에서 printFunc(); 처럼 호출 할 수 있습니다.
호출시 내부에 있는 print를 실행하겠죠?

printFunc() {
  print('나는 함수입니다.'); //나는 함수입니다.
}

  • positional paremeter 순서가 중요한 파라미터
  • main 함수에서 paremeter 순서대로 값을 대입할 수 있습니다.
    main 내부
    addNumbers(10, 20, 30);
  • 메인 함수에서 입력된 값을 통해 10 20 30 을 더한 sum이 수행되고 더한 값을 출력합니다.
addNumbers(int x, int y, int z) {
	int sum = x + y + z;
    print(sum);
}

어엇,,,,, 파라미터? 가 머에요?

= 함수 소괄호() 에 들어가는 친구들을 다음과 같이 부릅니다.
parameter, argument, 매개변수


optional parameter

  • optional parameter - 있어도 되고 없어도 되는 파라미터
  • (int x, [int? y , int? z]) - 다음과 같이 파라미터를 null로 처리할 수 있다.
  • 혹은 [int? y = 30 , int? z = 40] 와 같이 기본값을 부여할 수도 있으며, 평소처럼 함수를 호출할 때 직접 파라미터를 넣어줄 수도 있다. (당연히 기본값은 무시된다.)
  • x는 기본값을 넣을 필요가 없다. optional 파라미터가 아니기 때문
optionalFunc(int x, [int? y = 30 , int? z = 40]) {
  print('x : $x');
  print('y : $y');
  print('z : $z');
}

optional parameter 요약

  1. [] 대괄호를 통해 optional parameter를 사용할 수 있다.
  2. optional parameter는 기본값 혹은 함수 호출시 값이 없으면 null로 인지한다.

named parameter

  • named parameter - 파라미터 순서가 전혀 상관이 없다.
  • z 처럼 optional parameter를 사용할 수 있다. (파라미터 조합 가능)
namedFunc(int x, {
  required int y,
  int z = 20, // 지정된 파라미터가 있다면 그 값을, 없다면 기본 값을 따른다. (옵셔널 파라미터)
              // namedFunc(y: 1000,  x: 3000); // z = 20
              // namedFunc(y: 1000, z = 2000, x: 3000); z = 2000
}) {
  print('namedX : $x');
  print('namedY : $y');
  print('namedZ : $z');
}

return

  • main 함수 앞에 void가 붙어있습니다. 이 의미는 아무것도 없다는 뜻입니다.
  • 즉 우리가 정의하는 함수 앞에 아무런 키워드가 붙지 않으면 아무것도 반환을 해주지 않는 void가 생략된 것입니다.
  • 값을 반환하고 싶으면 반환해주고 싶은 타입을 함수명 앞에 명시합니다.

간단하게 정의한 함수

int plusFunc(int x, int y, int z) {
  int sum = x + y + z;
  return sum;
}

메인 함수

int sum = plusMethod(100,100,100);
int sum2 = plusMethod(200,200,200);
print(sum + sum2);

return 을 사용하지 않고 화살표로 간단하게 표현하는 방법도 있습니다. (return과 같은 역할)
int arrowTest(int x, int y, int z) => x + y + z;
profile
만드는 사람이 수고하면 쓰는 사람이 편하고 만드는 사람이 편하면 쓰는 사람이 수고롭다.

0개의 댓글