Java에서 세미콜론으로 명령문을 구분하는 데 사용되므로 자연스럽게 스칼라 코드에서도 수행합니다. 또한 한 문장이 끝나고 다른 문장이 시작되는 곳이 분명하기 때문에 코드를 읽기가 쉽다고 생각합니다. 그러나 여러 번 스칼라 코드를 SO에 게시하면 세미콜론을 제거하기 위해 코드가 편집됩니다.
- 세미콜론을 사용해야합니까? "공식적인"지침 또는 코딩 스타일이 있습니까?
- 세미콜론이 필요한 경우가 있습니까? 그렇지 않으면 코드가 모호합니까?
Java에서 세미콜론으로 명령문을 구분하는 데 사용되므로 자연스럽게 스칼라 코드에서도 수행합니다. 또한 한 문장이 끝나고 다른 문장이 시작되는 곳이 분명하기 때문에 코드를 읽기가 쉽다고 생각합니다. 그러나 여러 번 스칼라 코드를 SO에 게시하면 세미콜론을 제거하기 위해 코드가 편집됩니다.
답변:
공식적으로 "올바른"방법은 없지만 대부분의 실무자들은 가능한 한 세미콜론을 생략합니다 (따라서 많은 사람들이 세미콜론을 반사적으로 제거합니다).
언어는 진술을 끝낼 필요성을 잊게 만들려고 매우 열심히 노력합니다. 불행하게도, 그것은하지 않습니다 매우 그래서 세미콜론, 또는 괄호의 추가 세트, 또는 이와 유사한 "힌트"원치 않는 의미를 방지 할 필요가있는 다양한 복잡한 경우가 있습니다 성공. 이러한 상황은 거의 드물게 일반적으로 생각할 필요가 없습니다. 의견에 따라 방어 적으로 구두점을 찍어야하는지 (내 생각대로) 아니면 문제가 발생할 때까지 절대로 구두점을 찍지 않아야하는지 (여러분의 대다수의 사용자들이 생각하는) 의견이 다릅니다. 궁극적으로, 당신이 배신자인지 모델 시민인지의 여부에 달려 있습니다.
사용하는 언어를 얼마나 이해하고 싶습니까? 당신은 그것의 장점을 연주하고 싶습니까? 스칼라의 구문은 명확하고 간결한 코드를 장려합니다. 이를 활용하여 스칼라 파서에 문제가 발생하는 몇 가지 엣지 사례는 유익하며 (즉, 스칼라에 대해 배우고 피하는 방법을 배우면 스칼라에 대해 더 많이 배우게 됨) 점차적으로 수정됩니다 (예 : 접미사 표기법 ). 세미콜론을 방어 적으로 사용하면 이러한 문제에 대해 배울 필요가 없지만 실제로 이것을 좋은 것으로 간주합니까? 이러한 문제에 대한 픽스는 일반적으로 다른 의미를 갖지만 이러한 가능성을 놓치게됩니다.
킬리안이 인정한 것처럼 대부분의 스칼라 개발자는 기본적으로 세미콜론을 생략한다는 점도 고려해야합니다. 관용 스칼라를 직접 사용하지 않으면 어떻게 다른 사람의 코드로 작업 할 것으로 예상됩니까? 당신은 그것이 필요한 것보다 훨씬 더 어렵다는 것을 알게 될 것입니다.
Scala 파서의 이러한 기능이 깨끗하고 재사용 가능하며 기능적인 (fp 의미로) 코드를 장려하도록 선택되었다는 점을 강조 할 수 없습니다. 접두사 연산자 구문을 예로 들어 보자. 개발자가 함께 잘 구성된 간단한 단일 목적 메소드를 사용하여 클래스를 제공하도록 장려합니다. 스칼라의 수집 라이브러리는 그것이 얼마나 아름답게 작동하는지 보여줍니다. 이것을 받아들이는 고전적으로 훈련 된 Java 개발자는 더 나은 습관과 코드에 대한 새로운 사고 방식을 개발하는 경향이 있습니다. 친숙한 점과 괄호를 고수하는 사람들은 빠질 것입니다. 나는 너무 소심한 사람들도 세미콜론을 버리지 않는다고 주장한다.