The call operator () is used to call a method named call
implicitly.
For example,
class Factorial{
int
call(int num){
if(num
< 0)
throw
new IllegalArgumentException('input must be >= 0')
if(num
== 0 || num == 1)
return
1
int
result = 1
for(int
i = 2; i <= num; i++){
result = result * i
}
return
result
}
}
I can call the call method like below.
Factorial factorial = new Factorial()
int result1 = factorial.call(5)
I can even call the ‘call’ method like below.
int result2 = factorial(5)
HelloWorld.groovy
class Factorial{ int call(int num){ if(num < 0) throw new IllegalArgumentException('input must be >= 0') if(num == 0 || num == 1) return 1 int result = 1 for(int i = 2; i <= num; i++){ result = result * i } return result } } Factorial factorial = new Factorial() int result1 = factorial.call(5) int result2 = factorial(5) println "Factorial of 5 is ${result1}" println "Factorial of 5 is ${result2}"
Output
Factorial of 5 is 120
Factorial of 5 is 120
No comments:
Post a Comment