Saturday, July 9, 2022

[FIXED] 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 - Gilberto Lyons (PHPFixing Admin)

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.