package ask import ( "fmt" "strconv" ) func Int(query string, min, max int) int { return raw(query, '\n', func(s string) (v int, msg string) { v, err := strconv.Atoi(s) if err != nil { msg = "please enter a number" return v, msg } if min >= 0 && v < min { msg = fmt.Sprintf("your number must be bigger than %d", min) return v, msg } if max >= 0 && v > max { msg = fmt.Sprintf("your number must be smaller than %d", max) return v, msg } return v, msg }) } func Float64(query string, min, max float64) float64 { return raw(query, '\n', func(s string) (v float64, msg string) { v, err := strconv.ParseFloat(s, 64) if err != nil { msg = "please enter a number" return v, msg } if min >= 0 && v < min { msg = fmt.Sprintf("your number must be bigger than %g", min) return v, msg } if max >= 0 && v > max { msg = fmt.Sprintf("your number must be smaller than %g", max) return v, msg } return v, msg }) }