Go Type Aliasing: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
No edit summary
 
Line 15: Line 15:
In the case above, <tt>Duration</tt> and <tt>int64</tt> are considered two distinct and different types. Values of two types cannot assigned to each other, even if they are compatible.
In the case above, <tt>Duration</tt> and <tt>int64</tt> are considered two distinct and different types. Values of two types cannot assigned to each other, even if they are compatible.


The standard library uses this type declaration to create high-level functionality from built-in types. New behavior can be added to these type with [[Go_Concepts_-_Functions#Methods|methods]].
The standard library uses this type declaration to create high-level functionality from built-in types. New behavior can be added to these type with [[Go_Concepts_-_Functions#Methods|methods]]. Aliasing types is necessary because the compiler will only allow declaring methods for user-defined types that are named.

Latest revision as of 04:24, 13 April 2016

Internal

Overview

An existing type can be used as the type specification of a new type.

Example:

type Duration int64

In the case above, Duration and int64 are considered two distinct and different types. Values of two types cannot assigned to each other, even if they are compatible.

The standard library uses this type declaration to create high-level functionality from built-in types. New behavior can be added to these type with methods. Aliasing types is necessary because the compiler will only allow declaring methods for user-defined types that are named.