// Aggregated Datatype // Groups together objects of arbitray types into one object // No inheritance! // Straight from C package main import "fmt" type Person struct { name string addr string phone string } func main() { // Empty var p1 Person fmt.Println(p1) p1.name = "Drew" p1.addr = "123 Fake Street" p1.phone = "8675309" fmt.Println(p1) // Literal p2 := Person{"Margot", "123 Fake Street", "8675309"} fmt.Println(p2) // Other literal p3 := Person{name: "Harri", addr: "123 Fake Street", phone: "8675309"} fmt.Println(p3) // New func, returns a pointer to the p4 := new(Person) fmt.Println(*p4) //derefence }