2010년 2월 23일 화요일

Groovy Category

class TestCategory{
static String cut(String self, int len){
return self[ 0 ..< len ]
}
}

use(TestCategory){
assert 'abc' == 'abcdefg'.cut(3) //<-- (2)
}

(2)를 보면 마치 String에 cut메소드가 있는 것처럼 보인다.
위에서 정의한 TestCategory의 cut메소드에 첫번째 인자로 인스턴스를 전달해서 (2)번과 같이 인스턴스 메소드를 호출한 것 처럼 동작한다.

댓글 없음:

댓글 쓰기