Type: Struct

A struct is a collection of fields under a single name.

Same rules for visiblity apply to structs.

type Person struct {
    Name string
    Age  int
}

Constructor

Go has two built-in constructor mechanisms for structs—with and without field names.

func main() {
    var p1 Person
    p1 = Person{Name: "John", Age: 30}  // with field names
    p2 := Person{"John", 30}            // without field names
}

Can you inherit from another struct? No, Go does not support inheritance.