DEV Community

Cover image for Difference between functions and methods in Golang
penthaapatel
penthaapatel

Posted on • Originally published at penthaa.Medium

4 2

Difference between functions and methods in Golang

#go

Difference between functions and methods in Golang

The words function and method are used almost interchangeably, but there are subtle differences in their implementation and usage when used in Golang. Let's see what the difference is and how its used.

Function

Functions accept a set of input parameters, perform some operations on the input and produce an output with a specific return type. Functions are independent that is they are not attached to any user defined type.

Syntax:

func FunctionName(Parameters...) ReturnTypes...
Enter fullscreen mode Exit fullscreen mode

There cannot exist two different functions with the same name in the same package.

type Rectangle struct {
    Width float64
    Height float64
}

type Circle struct {
    Radius float64
}

func Area(r Rectangle) float64 {
    return 2 * r.Height * r.Width
}

func Area(c Circle) float64 {
    return math.Pi * c.Radius * c.Radius
}
Enter fullscreen mode Exit fullscreen mode

Run above code in The Go Playground

The above code throws an error : Area redeclared in this block

Method

A method is effectively a function attached to a user defined type like a struct. This user defined type is called a receiver.

Syntax:

func (t ReceiverType) FunctionName(Parameters...) ReturnTypes...
Enter fullscreen mode Exit fullscreen mode

There can exist different methods with the same name with a different receiver.

type Rectangle struct {
    Width  float64
    Height float64
}

func (r Rectangle) Area() float64 {
    return r.Width * r.Height
}

type Circle struct {
    Radius float64
}

func (c Circle) Area() float64 {
    return math.Pi * c.Radius * c.Radius
}

type Triangle struct {
    Base   float64
    Height float64
}

func (t Triangle) Area() float64 {
    return 0.5 * t.Base * t.Height
}
Enter fullscreen mode Exit fullscreen mode

Run above code in The Go Playground

AWS GenAI LIVE image

How is generative AI increasing efficiency?

Join AWS GenAI LIVE! to find out how gen AI is reshaping productivity, streamlining processes, and driving innovation.

Learn more

Top comments (0)

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay