packagemainimport"fmt"typeauthorstruct { firstName string lastName string bio string}func (a author) fullName() string {return fmt.Sprintf("%s%s", a.firstName, a.lastName)}typepoststruct { title string content stringauthor}func (p post) details() { fmt.Println("Title: ", p.title) fmt.Println("Content: ", p.content) fmt.Println("Author: ", p.fullName()) fmt.Println("Bio: ", p.bio)}typewebsitestruct { posts []post}func (w website) contents() { fmt.Println("Contents of website")for _, v :=range w.posts { v.details() fmt.Println() }}funcmain() { author1 :=author{"Naveen","Ramanathan","Golang Enthusiast", } post1 :=post{"Inheritance in Go","Go supports composition instead of inheritance", author1, } post2 :=post{"Struct instead of Classes in Go","Go does not support classes but methods can be added to structs", author1, } post3 :=post{"Concurrency","Go is a concurrent language and not a parallel one", author1, } w :=website{ posts: []post{post1, post2, post3}, } w.contents()}
Contents of website
Title: Inheritance in Go
Content: Go supports composition instead of inheritance
Author: Naveen Ramanathan
Bio: Golang Enthusiast
Title: Struct instead of Classes in Go
Content: Go does not support classes but methods can be added to structs
Author: Naveen Ramanathan
Bio: Golang Enthusiast
Title: Concurrency
Content: Go is a concurrent language and not a parallel one
Author: Naveen Ramanathan
Bio: Golang Enthusiast