이스케이프가 필요 없다면 큰따옴표를 써요
이스케이프가 필요 없다면 큰따옴표를 써요
prefer_double_quotes 린트 규칙은, 추가 이스케이프가 필요하지 않은 곳에서는 큰따옴표(")를 쓰라고 권하는 규칙이에요. Stable 상태이고, 코드 수정도 자동으로 가능하며 Dart 2.4에서 나왔어요.
출처: Prefer double quotes where they won't require escape sequences.
본문
문자열 안에 큰따옴표가 들어가야 하는데 이스케이프를 해야 하는 상황이라면, 작은따옴표(')를 써서 큰따옴표를 이스케이프하지 않아도 되게 할 수 있어요. 다만 이 규칙은 그 반대 방향은 잡지 않아요 — 큰따옴표 문자열 안에서 큰따옴표를 이스케이프한 코드는 지적하지 않는다는 뜻이에요.
문자열 안에 문자열이 들어가는 문자열 보간(string interpolation) 안에는 더 특별한 상황이 생겨요. 문자열이 중첩되다 보면 큰따옴표와 작은따옴표를 섞는 게 훨씬 읽기 편할 때가 있어요. 그래서 보간된 문자열 안이나, 보간된 문자열을 담은 문자열에서는 작은따옴표를 쓸 수 있어요.
BAD — 큰따옴표를 쓸 수 있는데 작은따옴표로 썼어요.
useStrings(
'should be double quote',
r'should be double quote',
r'''should be double quotes''')
GOOD — 큰따옴표를 기본으로 쓰고, 이스케이프가 필요하거나 문자열이 중첩될 때만 작은따옴표를 섞었어요.
useStrings(
"should be double quote",
r"should be double quote",
r"""should be double quotes""",
'ok with " inside',
'nested ${a ? "strings" : "can"} be wrapped by a double quote',
"and nested ${a ? 'strings' : 'can be double quoted themselves'}");
호환되지 않는 규칙
prefer_double_quotes 규칙은 다음 규칙과 함께 쓸 수 없어요.
prefer_single_quotes
규칙 켜기
analysis_options.yaml 파일의 linter > rules 아래에 prefer_double_quotes를 추가하면 돼요.
linter:
rules:
- prefer_double_quotes
YAML 맵 문법으로 설정한다면 이렇게 써요.
linter:
rules:
prefer_double_quotes: true
더 알아보기
- 반대로 작은따옴표를 선호하는 팀이라면
prefer_single_quotes규칙을 봐요. 이 규칙과는 함께 쓸 수 없어요.