본문 바로가기

parentheses

Scala - 함수를 정의 할 때 관례 (Convention) 스칼라 언어로 함수를 정의할 때 아래와 같이 두 가지 방법으로 정의할 수 있다. 결과를 확인하면, 똑같다... 하는 일도 똑같은데 왜 (...) 이 필요할까? 라는 의문을 제기할 수 있다.그래서 잘 찾아봤는데 문제의 해답은 coding convention 이라는 것이다. 스칼라 언어에서 인자가 없는 함수를 정의할 경우, 괄호(parentheses) 가 있고 없고의 차이는 side effect 가 있냐 없냐의 차이이다.side effect 라는 것은 standard out 을 출력 하거나 어떤 mutable 한 데이터의 값을 변경하는 경우를 의미한다. 그래서 side effect 가 있는 것은 (...) 를 사용하고 없는 것은 그냥 함수 이름만 사용하면 된다. 결론적으로 함수를 정의할 때 (...)의 사용.. 더보기
Scala - 함수를 사용할 때 (...) 과 {...} 의 차이 Scala 로 프로그래밍 하던 중에 궁금한 것이 생겼다. 함수를 사용할 때 (...) 과 {...} 둘 다 사용가능 한 것이었다.하지만 어떤 경우는 컴파일이 되지 않았다. 왜 그런 것일까? 이 둘의 차이는 뭘까? 라는 의문이 생겼다. 예를 들어 아래와 같은 코드는 같은 일을 한다. 그리고 컴파일 에러도 생기지 않는다. 하지만 아래와 같은 코드는 컴파일 에러를 발생 시킨다. 그래서 아래와 같이 {...} 를 사용하면 문제가 생기지 않고 잘 작동함을 알 수 있다. 아하!!! 바로 차이는 (...) 과 {...} 의 차이는 expression 이 한개인가 아니면 여러개 (block of codes) 인가의 차이이다.함수에 표현식을 여러개 넣고 싶다면 {...} 를 사용하고 한 개만 넣고 싶다면, (...) 를.. 더보기