조건식 대신 if 요소 사용하기

조건식 대신 if 요소 사용하기

컬렉션을 만들 때 조건에 따라 요소를 넣거나 빼야 하는 경우가 있어요. 이때 condition ? 'c' : null 같은 조건식을 쓰다 보면 null을 걸러내는 코드까지 덧붙여야 해서 번거롭죠. 이 린트 규칙은 가능하면 컬렉션의 if 요소를 쓰라고 알려줘요.

출처: prefer_if_elements_to_conditional_expressions

본문

컬렉션을 만들 때는 조건식(conditional expression)보다 **if 요소(if elements)**를 사용하는 게 더 좋아요.

나쁜 예:

var list = ['a', 'b', condition ? 'c' : null].where((e) => e != null).toList();

좋은 예:

var list = ['a', 'b', if (condition) 'c'];

조건식 방식은 where로 null을 걸러내는 작업까지 추가로 해야 하지만, if 요소를 쓰면 조건이 참일 때만 'c'가 들어가서 훨씬 간결해져요.

이 규칙 켜는 법

prefer_if_elements_to_conditional_expressions 규칙을 켜려면 analysis_options.yaml 파일의 linter > rules 아래에 규칙 이름을 추가하면 돼요.

linter:
  rules:
    - prefer_if_elements_to_conditional_expressions

혹시 YAML 맵 문법으로 린트 규칙을 설정하고 있다면, linter > rules 아래에 이렇게 적어주면 돼요.

linter:
  rules:
    prefer_if_elements_to_conditional_expressions: true

더 알아보기