// Chapter 27 example: a function that returns nil for "no answer", and a // caller that checks for it. // Run with: go run exercises/27/06-nil-check.go package main import "fmt" type character struct { name string hp int } // stronger returns whichever character has more hp, or nil for a tie. func stronger(a *character, b *character) *character { if a.hp > b.hp { return a } if b.hp > a.hp { return b } return nil } func announce(winner *character) { if winner == nil { fmt.Println("It is a tie.") return } fmt.Println(winner.name, "is stronger.") } func main() { ada := &character{name: "Ada", hp: 100} ben := &character{name: "Ben", hp: 80} cara := &character{name: "Cara", hp: 100} announce(stronger(ada, ben)) announce(stronger(ada, cara)) }