Dart 함수2

이제우·2024년 10월 6일

Optional Positional Parameters

dart의 함수에서 사용할 수 있는 또다른 기능이지만 주로 사용하지는 않는다.

매개변수에 대괄호로 감싸주면 되는데, 매개변수를 optional하게 지정해준다.

String Hi (
	[name = 'jinjin'];
) => 'Hello $name';

void main() {
	print(Hi()); // Hello jinjin
}

defalut value와 다른 점은, 매개변수를 key: value 형식으로 입력하지 않아도 된다는 점

defalut value > Hi(name: 'jinjin');
Optional Positional Parameters > Hi('jinjin');

?? (QQ Operator)

dart에서 null 값을 더 간결하게 비교해주는 오퍼레이터이다.

String up(String? name) => name != null ? name.toUpperCase() : 'ANON';
// 이런 삼항 연산자를 아래와 같이 바꿀 수 있다.
String up(String? name) => name?.toUpperCase() ?? 'ANON';
// 좌항의 값이 null을 return 할 경우 우항을 return 한다.

??= (QQ equals)

변수의 값이 null일 경우에만 값을 할당하는 기능이다.

void main(){
	String name;
    name ??= 'jinjin';
    name ??= 'jinjinjin';
    
    print(name); // jinjin;
}

typedef

타입에 대한 명칭을 매핑한다라고 생각한다.

List<int> reverseList(List<int> list) {
	var reversed = list.reversed;
    return reversed;
}

void main(){
  print(reverseList([1,2,3,4]));
}

위와 같은 함수에 typedef를 사용하면

typedef IntList = List<int>;

IntList reverseList(IntList list) {
	var reversed = list.reversed;
    return reversed.toList();
}

void main(){
  print(reverseList([1,2,3,4]));
}

이렇게 List에 대한 명칭을 매핑하여 변경해줄 수 있다.

profile
게으른 사람 중에 제일 부지런하게 사는 사람이 꿈

0개의 댓글