- Declaring new user-defined types
- Adding behavior to types with methods
- Knowing when to use pointers and values
- Implementing polymorphism with interfaces
- Extending and changing types through composition
- Exporting and unexporting identifiers
Go is a statically typed programming language.
A value’s type provides the compiler with two pieces of information:
- first, how much memory to allocate—the size of the value
- and second, what that memory represents.
Some types get their representation based on the architecture of the machine. (such as int
)