package main import "fmt" func printPrice2(product string, price float64, calculator calcFunc) { fmt.Println("Product:", product, "Price:", calculator(price)) } func selectCalculator2(price float64) calcFunc { if price > 100 { var withTax calcFunc = func(price float64) float64 { return price + (price * 0.2) } return withTax } var withoutTax calcFunc = func(price float64) float64 { return price } return withoutTax } func main2() { products := map[string]float64{ "Kayak": 275, "LifeJacket": 48.95, } for product, price := range products { printPrice2(product, price, selectCalculator2(price)) } }