Methods
This page is under active revision, content may be updated without notice
In Go, Methods are similar to func except that they have a receiver to operate on. To get full_name of a person we would love to define a method to Person struct like
func(p Person) full_name() {
fmt.Println(p.first_name, p.last_name)
}
p.full_name()
//=> "John Lego"Well done Jack! But problem with this method is, it is printing full_name to standard output. But in real world we would need our full_name to return full name of a person. Here is how
func(p Person) full_name() string {
s := p.first_name + " " + p.last_name
return s
}
fmt.Println(p.full_name())
//=> "John Lego"Just FYI Jack, struct can also have embedded types, not just legacy types. Here is an example of struct Employee
type Employee struct{
Person
employee_id string
}Now to initilize it we need to follow same way, but first argument should be of type person, like
Note that method defined on struct Person is alo available directly and indirectly to employee.
Last updated
Was this helpful?