강의: #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';
left ?? right 라는 식이 있다면 좌항이 null이면 우항을 return 함.
좌항이 null이 아니면 그대로 좌항을 return 하는 것.
name 자체가 null인 경우에는 toUpperCase를 호출할 수 없기 때문에 ? 를 넣어줌.
question question 혹은 QQ operator로 불림.
QQ assignment operator 로 불림.
void main() {
String? name;
name ??= 'nico';
//만약에 name이 null이면 nico로 값을 할당해줘
name = null;
name ??= 'another';
//만약에 name이 null이면 another로 값을 할당해줘
print(name);
}
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']}";
}