package prompt import ( "bufio" "fmt" "io" "os" "strings" ) // ConfirmWithReader 询问用户确认(y/n),支持自定义输入源 // 用于测试时注入 mock 输入 func ConfirmWithReader(message string, reader io.Reader) bool { r := bufio.NewReader(reader) for { fmt.Printf("%s [y/N]: ", message) response, err := r.ReadString('\n') if err != nil { return false } response = strings.TrimSpace(strings.ToLower(response)) if response == "y" || response == "yes" { return true } else if response == "n" || response == "no" || response == "" { return false } fmt.Println("请输入 'y' 或 'n'") } } // Confirm 询问用户确认(y/n) // 使用标准输入 func Confirm(message string) bool { return ConfirmWithReader(message, os.Stdin) }