A linguagem de programação Go suporta tipos especiais de funções chamadas métodos. Na sintaxe de declaração do método, um "receptor" está presente para representar o contêiner da função. Este receptor pode ser usado para chamar uma função usando "." operador. Por exemplo -
Sintaxe
func (variable_name variable_data_type) function_name() [return_type]{
/* function body*/
}
Exemplo
package main
import (
"fmt"
"math"
)
/* define a circle */
type Circle struct {
x,y,radius float64
}
/* define a method for circle */
func(circle Circle) area() float64 {
return math.Pi * circle.radius * circle.radius
}
func main(){
circle := Circle{x:0, y:0, radius:5}
fmt.Printf("Circle area: %f", circle.area())
}
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
Circle area: 78.539816