스칼라 언어로 함수를 정의할 때 아래와 같이 두 가지 방법으로 정의할 수 있다.
결과를 확인하면,
똑같다...
하는 일도 똑같은데 왜 (...) 이 필요할까? 라는 의문을 제기할 수 있다.
그래서 잘 찾아봤는데 문제의 해답은 coding convention 이라는 것이다.
스칼라 언어에서 인자가 없는 함수를 정의할 경우, 괄호(parentheses) 가 있고 없고의 차이는 side effect 가 있냐 없냐의 차이이다.
side effect 라는 것은 standard out 을 출력 하거나 어떤 mutable 한 데이터의 값을 변경하는 경우를 의미한다.
그래서 side effect 가 있는 것은 (...) 를 사용하고 없는 것은 그냥 함수 이름만 사용하면 된다.
결론적으로 함수를 정의할 때 (...)의 사용은 개발자간에 특정 함수가 side effect 를 가지냐 그렇지 않냐를 알려주는 표시 인것이다.
'Programming > Scala' 카테고리의 다른 글
Scala - Java 의 interface 의 가려운 부분을 긁어주는 trait (0) | 2013.03.14 |
---|---|
Scala - apply 함수는 무슨 일을 하는 것일까? (1) | 2013.03.14 |
Scala - 함수를 사용할 때 (...) 과 {...} 의 차이 (0) | 2013.03.13 |
Scala Days - 스칼라 모임 (0) | 2013.02.28 |
Scala 2.10 new features (0) | 2013.02.05 |