Dart-QQ Operators, Typedef

Mkim4·2023년 9월 1일
0

강의: #3.4 QQ Operator
강의: #3.5 Typedef

String capitalizeName(String? name) {
  if (name != null) {
    return name.toUpperCase();
  }
  return 'ANON';
}

ternary operator(삼항연산자) 사용

String capitalizeName(String? name) =>
    name != null ? name.toUpperCase() : 'ANON';

??구분자 사용

String capitalizeName(String? name) =>
    name?.toUpperCase() ?? 'ANON';

QQ operator

left ?? right 라는 식이 있다면 좌항이 null이면 우항을 return 함.
좌항이 null이 아니면 그대로 좌항을 return 하는 것.
name 자체가 null인 경우에는 toUpperCase를 호출할 수 없기 때문에 ? 를 넣어줌.
question question 혹은 QQ operator로 불림.

QQ equals

QQ assignment operator 로 불림.

void main() {
  String? name;
  name ??= 'nico';
  //만약에 name이 null이면 nico로 값을 할당해줘
  name = null;
  name ??= 'another';
  //만약에 name이 null이면 another로 값을 할당해줘
  print(name);
}

typedef

typedef는 자료형에 alias를 붙일 수 있게 해줌

자료형이 헷갈릴 때 도움이 될 alias를 만드는 방법
어떻게 integer List의 alias를 만들 수 있을까?

typedef ListOfInts = List<int>;

ListOfInts reverseListOfNumbers(List<int> list){
  var reversed = list.reversed;
  return reversed.toList();
}

void main() {
  print(reverseListOfNumbers([1,2,3]));
}
typedef UserInfo = Map<String, String>;

String sayHi(UserInfo userInfo){
  return "Hi ${userInfo['name']}";
}
profile
귀요미 개발자

0개의 댓글

관련 채용 정보