unnecessary_constructor_name 린트 규칙: 불필요한 .new 생성자 이름 피하기
unnecessary_constructor_name 린트 규칙: 불필요한 .new 생성자 이름 피하기
unnecessary_constructor_name은 기본 unnamed 생성자를 부를 때 굳이 .new를 붙이고 있는 경우를 알려주는 린트 규칙이에요. 주어진 클래스 C에서 C.new는 이름 없는 생성자 C와 완전히 같은 생성자를 가리키기 때문에, 시각적 잡음만 추가할 뿐이에요.
본문
설명
.new보다는 기본 unnamed 생성자를 사용하는 쪽을 선호하세요. 주어진 클래스 C에 대해, 이름이 붙은 unnamed 생성자 C.new는 이름 없는 생성자 C와 같은 생성자를 가리켜요. 그래서 호출할 때 아무것도 추가로 주는 게 없고, 눈에만 거슬리는 시각적 잡음이죠. 이 규칙은 생성자 tear-off를 식별하려는 경우가 아니라면 그런 .new 사용을 피하라고 해요.
BAD:
class A {
A.new(); // LINT
}
var a = A.new(); // LINT
GOOD:
class A {
A.ok();
}
var a = A();
var aa = A.ok();
var makeA = A.new;
A()처럼 그냥 호출하면 같은 생성자를 쓰는 거니까 굳이 .new를 붙일 필요가 없어요. 다만 마지막 줄의 var makeA = A.new;처럼 생성자 tear-off(함수처럼 생성자를 넘겨주는 것)를 만들 때는 .new가 쓰일 수 있어요.
활성화 방법
unnecessary_constructor_name 규칙을 활성화하려면 analysis_options.yaml 파일의 linter > rules 아래에 규칙을 추가하면 돼요.
linter:
rules:
- unnecessary_constructor_name
대신 YAML 맵 문법을 사용해서 린트 규칙을 설정하고 있다면, linter > rules 아래에 unnecessary_constructor_name: true를 추가하면 돼요.
linter:
rules:
unnecessary_constructor_name: true