Nomadcoders - Dart 시작하기 #3

Nomadcoders - Dart 시작하기 #3

Positional Parameter, Named Parameter, Optional Positional Parameter, QQ Operator, QQ Assignment Operator, Typedef에 대해 정리했습니다.

알게된 사실 👨🏻‍💻

Positional ParameterNamed Parameter

Positional Parameter는 파라미터의 순서가 중요하며, 자동으로 required로 지정된다.

그러나 파라미터의 순서를 정확하게 기억해야 하는 단점이 있어 가독성이 떨어질 수 있다.

Named Parameter는 순서와 상관없이 파라미터의 이름을 지정하여 사용한다.

Named Parameter는 클린 코드 작성을 위해 권장되는 방식이다.

아래는 함수에서 Named Parameter를 사용하는 예시이다.

String sayHello({
    required String name, 
    required int age, 
    required String country
}) {  
    return "Hi, I'm $name. I'm $age. I'm in $country";
}

void main() {
    print(sayHello(
        name: 'hardy',
        age: 25,
        country: 'ROK',
    ))
}

Optional Positional Parameters

Optional Positional Parameters 방식은 자주 사용되지는 않지만, 선택적으로 파라미터를 지정할 수 있다.

String sayHello(
    String name,
    int age, 
    [String? country = 'ROK']
) => 
"Hi, I'm $name. I'm $age. I'm in $country";

void main() {
    print(sayHello('hardy', 25));
}

QQ Operator

Null 값에 대한 처리를 쉽게 할 수 있는 방법이다.

String capitalizeName(String? name) {
    name?.toUpperCase() ?? 'ANON';
}
void main() {
    capitalizeName(null);
}

QQ Assignment Operator

변수에 값이 할당되어 있지 않을 경우, 기본값을 할당할 수 있다.

void main() {
    String? name;
    name ??= 'hardy';
}

Typedef

Dart에서 타입에 대한 별칭을 지정할 때 사용한다.

간단한 데이터의 alias를 만들 때 사용하는 것이 좋다.

복잡한 구조의 데이터에 대해서는 class를 사용하는 것을 권장한다.

typedef ListOfInts = List<int>;

ListOfInts reverseListOfNumbers(ListOfInts list) {
    var reversed = list.reversed;
    return reversed.toList();
}