enum, 함수, posional/optional/named parameter, Operation

2023. 3. 13. 23:42앱 개발/dart

1. enum

  • 열거형(enumerated type)을 정의하는데 사용되는 키워드
  • 서로 관련된 상수값을 하나의 타입으로 정의하고, 코드의 가독성을 높이고 실수를 줄이는 등의 장점을 가짐
  • 해당 열거형은 고정된 개수의 값을 가지며 이 값들은 각각 고유한 이름을 가짐
enum Status {
  approved, // 승인
  pending, // 대기
  rejected, // 거절
}

void main() {
  Status status = Status.pending;

  if (status == Status.approved) {
    print('승인입니다.');
  } else if (status == Status.pending) {
    print('대기입니다.');
  } else {
    print('거절입니다.');
  }
}

 

2. Positional / Opentional / Named Parameter

1. Positional Parameter

  • 순서가 중요한 파라미터
// positional parameter - 순서가 중요한 파라미터
addNumbers(int x, int y, int z) {
  print('x : $x, y : $y, z : $z');
  int sum = x + y + z;
  print('sum = $sum');
  if (sum % 2 == 0) {
    print('짝수입니다.');
  } else {
    print('홀수입니다.');
  }
  return sum;
}

2. Optional Parameter

// optional parameter - 있어도 되고 없어도 되는 파라미터
addNumbersOptional(int x, [int y = 10, int z = 10]) {
  ...
  (위와 동일)
  ...
}

3. Named Parameter

// named parameter - 이름이 있는 파라미터 (순서가 중요하지 않다.)
addNumbersNamed({
  required int x,
  required int y,
  int z = 10,
}) {
  ...
  (위와 동일)
  ...
}

4. 화살표 함수(arrow function)

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

// after
// before
addNumbers(int x, {
  required int y, 
  int z = 30
}) => x + y + z;

5. 사용

void main() {
  int result1 = addNumbers(10, 20, 30); // x = 10, y = 20, z = 30
  int result2 = addNumbersOptional(10);	// x = 10, y = 10, z = 10
  int result3 = addNumbersNamed(x: 10, y: 20);	// x = 10, y = 20, z = 10
  print('result1 : $result1, result2: $result2, result: $result3');	// 60 / 30 / 40
}

 

3. Operation

void main() {
  Operation operation = add;
  print(operation(10, 20)); // 10 + 20 = 30
  operation = subtract;
  print(operation(30, 20));	// 30 - 20 = 10
  print(calculate(5, 6, add));	// 5 + 6 = 11
  print(calculate(10, 5, subtract));	// 10 - 5 = 5
}

typedef Operation = int Function(int x, int y);

// 더하기
int add(int x, int y) => x + y;
// 빼기
int subtract(int x, int y) => x - y;
// 계산
int calculate(int x, int y, Operation operation) {
  return operation(x, y);
}

 

 

 

 

'앱 개발 > dart' 카테고리의 다른 글

선언과 사용  (0) 2023.03.13