While looking at the google plus sign in in go, I found a very interesting pattern. Here is a trivial example (live).
package main
import(
"fmt"
)
type FuncType func(i int) int
func (fn FuncType) MultiplyByTwo(i int) int{
return fn(i) * 2
}
func MultiplyByThree(i int) int{
return i * 3
}
func main(){
fn := FuncType(MultiplyByThree)
fmt.Println("returns 2 * 3 * 5: ",fn.MultiplyByTwo(5))
}
My question is quite simple, how come can we initiate the FuncType with parentheses? I do not understant!
Thanks.