use_string_buffers 진단: 문자열을 조합할 땐 '+'보다 StringBuffer를 써요
use_string_buffers 진단: 문자열을 조합할 땐 '+'보다 StringBuffer를 써요
Dart 분석기가 내보내는 진단에는 이름이 있어요. use_string_buffers는 반복문 안에서 +로 문자열을 이어 붙일 때 분석기가 알려주는 린트 규칙이에요. 반복적으로 문자열을 연결하면 성능이 나빠지니까 StringBuffer를 쓰는 게 더 좋아요.
본문
설명
분석기는 반복문 안에서 StringBuffer를 쓰지 않고 값을 문자열에 계속 이어 붙일 때 이 진단을 만들어요.
문자열은 불변(immutable)이라서 +로 연결할 때마다 새로운 문자열이 만들어져요. 반복문 안에서 이를 반복하면 그만큼 메모리와 시간이 낭비되죠. StringBuffer는 버퍼에 쌓아 두었다가 한 번에 문자열로 만들어 주니까 훨씬 효율적이에요.
예시
다음 코드는 문자열 result를 for 반복문 안에서 반복적으로 이어 붙여서 만들기 때문에 이 진단을 만들어요.
String f() {
var result = '';
for (int i = 0; i < 10; i++) {
result += 'a';
}
return result;
}
흔한 해결 방법
결과를 계산할 때 StringBuffer를 쓰면 돼요.
String f() {
var buffer = StringBuffer();
for (int i = 0; i < 10; i++) {
buffer.write('a');
}
return buffer.toString();
}