Challenge 1 — Solution Task: Define a struct Book with fields Title (string), Pages (int). Create one, then write a method (b Book) Describe() string that returns a sentence combining both fields. Print the result of calling Describe(). package main import "fmt" type Book struct { Title string Pages int } func (b Book) Describe() string { return fmt.Sprintf("%s has %d pages", b.Title, b.Pages) } func main() { book := Book{Title: "The Hobbit", Pages: 310} fmt.Println(book.Describe()) } Expected output: The Hobbit has 310 pages Notes: - fmt.Sprintf works exactly like Printf, except it returns the formatted string instead of printing it directly — needed here since Describe() must return a string, not print one itself. - (b Book) is a plain (non-pointer) receiver, which is fine here since Describe() only reads fields, it never needs to change them. - book.Describe() reads naturally, the same dot-call syntax used for any Go method, regardless of receiver type.