Go - Type Declarations
Type declarations come in two forms: alias declarations and type definitions.
Alias Declaration
A type alias creates a new name for an existing type.
go
// Alias declaration syntax (An equal sign is used).
type Alias = ExistingType
Examples:
go
// An alias for int64 named Timestamp.
// Timestamp and int64 are identical types.
type Timestamp = int64
// Declare multiple type aliases.
type (
nodeList = []*Node // nodeList and []*Node are identical types
Score = int // Score and int are identical types
)
Type Definition
A type definition creates a new, distinct type, it is different from any other type including the type it’s created from and may have methods associated with it.
go
// Type definition syntax.
type NewType ExistingType
Examples:
go
// New type named Duration based on int64.
// Duration and int64 are different types.
type Duration int64
// Define multiple types.
// All the defined types are different from the types they're created from.
type (
TimeZone int
ByteSlice []byte
Point struct{ x, y float64 }
)