본문 바로가기

Programming/Scala

Scala - 함수를 정의 할 때 관례 (Convention)

스칼라 언어로 함수를 정의할 때 아래와 같이 두 가지 방법으로 정의할 수 있다.


결과를 확인하면,


똑같다...


하는 일도 똑같은데 왜 (...) 이 필요할까? 라는 의문을 제기할 수 있다.

그래서 잘 찾아봤는데 문제의 해답은 coding convention 이라는 것이다.


스칼라 언어에서 인자가 없는 함수를 정의할 경우, 괄호(parentheses) 가 있고 없고의 차이는 side effect 가 있냐 없냐의 차이이다.

side effect 라는 것은 standard out 을 출력 하거나 어떤 mutable 한 데이터의 값을 변경하는 경우를 의미한다.


그래서 side effect 가 있는 것은 (...) 를 사용하고 없는 것은 그냥 함수 이름만 사용하면 된다.


결론적으로 함수를 정의할 때 (...)의 사용은 개발자간에 특정 함수가 side effect 를 가지냐 그렇지 않냐를 알려주는 표시 인것이다.