What (exactly) does the type keyword do in go?

Issue

I’ve been reading A Tour of Go to learn Go-Lang and so far it’s going good.

I’m currently on the Struct Fields Lesson and here is the sample code from the right hand side:

package main

import "fmt"

type Vertex struct {
  X int
  Y int
}

func main() {
  v := Vertex{1, 2}
  v.X = 4
  fmt.Println(v.X)
}

Take a look at line 3:

type Vertex struct {

What I don’t understand is, what does the type keyword do and why is it there?

Solution

The type keyword is there to create a new type. This is called type definition. The new type (in your case, Vertex) will have the same structure as the underlying type (the struct with X and Y). That line is basically saying “create a type called Vertex based on a struct of X int and Y int”.

Don’t confuse type definition with type aliasing. When you declare a new type, you are not just giving it a new name – it will be considered a distinct type. Take a look at type identity for more information on the subject.

Answered By – hscasn

Answer Checked By – Marilyn (GoLangFix Volunteer)

Leave a Reply

Your email address will not be published.