리스트 요소를 인라인으로 넣기
리스트 요소를 인라인으로 넣기 (prefer_inlined_adds)
Dart Analyzer가 리스트 리터럴에 add나 addAll을 호출해서 요소를 추가하는 코드를 보면, 그 요소를 아예 리스트 리터럴에 직접 넣으라고 알려주는 린트 규칙이에요.
본문
설명
Analyzer는 add와 addAll 메서드가 리스트 리터럴에 호출됐는데, 그때 추가되는 요소들을 리스트 리터럴에 바로 포함시킬 수 있는 경우 이 진단을 만들어요.
예시
다음 코드는 add 메서드로 b를 추가하고 있는데, 그걸 리스트 리터럴에 바로 넣을 수 있어서 이 진단이 나와요.
List<String> f(String a, String b) {
return [a]..add(b);
}
다음 코드는 addAll 메서드로 b의 요소들을 추가하고 있는데, 역시 리스트 리터럴에 바로 포함시킬 수 있어서 이 진단이 나와요.
List<String> f(String a, List<String> b) {
return [a]..addAll(b);
}
일반적인 수정
add 메서드를 쓰고 있다면, 그 인자를 리스트의 요소로 만들고 호출을 없애면 돼요.
List<String> f(String a, String b) {
return [a, b];
}
addAll 메서드를 쓰고 있다면, 인자에 spread 연산자를 써서 요소를 리스트에 펼쳐 넣고 호출을 없애면 돼요.
List<String> f(String a, List<String> b) {
return [a, ...b];
}
더 알아보기
- 리스트를 만들자마자 요소를 추가하는 것보다, 리터럴 안에 요소를 바로 적는 게 훨씬 선언적이고 읽기 좋아요.
- 여러 요소를 펼쳐 넣을 땐
...b같은 spread 연산자를 활용하면 깔끔하답니다.