use_setters_to_change_properties 진단: 프로퍼티를 바꾸려면 setter를 써요

use_setters_to_change_properties 진단: 프로퍼티를 바꾸려면 setter를 써요

Dart 분석기가 내보내는 진단에는 이름이 있어요. use_setters_to_change_properties프로퍼티 값을 바꾸는 일만 하는 메서드가 있을 때 분석기가 알려주는 린트 규칙이에요. 필드 값을 바꾸면서 다른 일은 하지 않는 메서드는 setter로 바꾸는 게 더 자연스러워요.

출처: use_setters_to_change_properties

본문

설명

분석기는 메서드가 필드의 값을 설정하는 일만 하거나, 함수가 최상위(top-level) 변수의 값을 설정하는 일만 하고 아무 다른 작업도 하지 않을 때 이 진단을 만들어요.

그런 메서드는 사실상 setter의 역할을 하고 있으니까, 문법적으로도 setter로 표현하는 게 더 명확해요.

예시

다음 코드는 메서드 setF가 필드 _f의 값을 설정하는 일만 하고 다른 작업을 하지 않기 때문에 이 진단을 만들어요.

class C {
  int _f = 0;

  void setF(int value) => _f = value;
}

흔한 해결 방법

메서드를 setter로 바꾸면 돼요.

class C {
  int _f = 0;

  set f(int value) => _f = value;
}

더 알아보기