Go Methods

From NovaOrdis Knowledge Base
Revision as of 00:37, 31 August 2024 by Ovidiu (talk | contribs) (→‎Overview)
Jump to navigation Jump to search

Internal

Overview

Go allows associating arbitrary behavior with built-in or custom types, which contributes to the object-oriented character of the language. Note that Go is not a fully object-oriented language, it misses type inheritance, for example.

Syntactically, the association of the behavior with the type is done by declaring a function, encapsulating the behavior we want to add to the type, and adding a receiver type to its signature:

func (t ReceiverType) FunctionName(parameters, ...) (return_declaration) {
 ...
}

As result of this association, the function becomes a method of the type.

The declaration is identical to that of a regular function, with the exception of the receiver parameter, which precedes the function name. The receiver parameter gives the method's body access to the instance of the associated type.

Value or Pointer Receiver