E014: 튜플이 너무 김
E014: 튜플이 너무 김 (Tuple Too Long)
이 에러는 Scala 3.0.0이 출시되기 전에 제거되어, Scala 3 컴파일러가 실제로 이 에러를 낸 적은 없어요.
본문
무엇을 하던 에러였나 (What it did)
이 에러는 22개가 넘는 요소를 가진 튜플 리터럴을 만들 때 발생했어요.
Example
val t = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
Error
-- [E014] Syntax Error: example.scala:1:8 --------------------------------------
1 |val t = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
| ^
| A tuple cannot have more than 22 members
Explanation
초기 버전의 Dotty(Scala 3.0.0 이전)에서는 Scala 2와 마찬가지로 튜플이 22개 요소로 제한되어 있었어요. 이 에러 메시지는 중첩 튜플을 해결책으로 쓰도록 제안했죠:
// Workaround with nested tuples (no longer needed)
val t = ((1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22), (23))
이 제한은 커밋 2d1427d5aa(2018년 8월)에서 "Allow tuple literals to extend beyond 22"와 함께 제거되었어요. Scala 3.0.0 이후로 튜플은 제한 없이 어떤 수의 요소도 가질 수 있어요.
더 알아보기
- 튜플의 구조와 활용은 Scala 3 Book의 "Tuples" 섹션을 참고하세요.