본문 바로가기

SCALA

Scala - apply 함수는 무슨 일을 하는 것일까?

Scala 언어에서 각종 라이브러리마다 공통되는 함수가 존재하는데, apply 라는 녀석이다.

apply 라는 녀석은 말 그대로 어떤 함수를 적용시킨다는 의미인데, 자세히 이야기 하면, apply 와 함께 들어오는 인자에 대해서는 어떤 함수를 적용시킨다는 뜻이다.




f1은 x와 y 두 정수를 받아서 합쳐서 그 값을 돌려주는 함수이다.


f1.apply(2,3)을 하게 되면 이 f1이라고 정의된 함수에 2, 3이라는 인자를 적용해서 함수의 역할을 하라는 뜻이다. 여기서 신기한 것은 우리는 자연스럽게 f1(2,3)이라고 호출하고 싶다. 왜냐하면, f1.apply(2,3)은 좀 자연스럽지 않기 때문이다. 여기서 f1은 함수이지만 스칼라 언어에서 역시 객체로 인식된다.

그렇기 때문에 객체지향 언어에서는 당연히 object, method 형식으로 메소드가 호출 되어야 하는 것이 당연하다. 하지만 스칼라에서는 이 객체지향 언어와 함수형 언어의 gap을 줄이기 위해 왠만한 object클래스에 apply함수가 구현되어 있다.



스칼라 언어에서의 apply함수는 객체와 함수의 격차를 줄여주는 편리한 기능이라고 볼 수 있다.



출처 : http://starblood.tistory.com/151

'SCALA' 카테고리의 다른 글

[Scala] 자바프로그래머를 위한 Scala - 작성중  (0) 2013.05.20
함수적 프로그래밍의 장점  (0) 2013.05.06