收银机收到的点单长这样:"tea x3"。ParseOrder(line) 返回名字、数量和 nil;两头的空格、数量不对时返回 "bad order",模板都写好了。你只要在 " x" 那里把 line 切成 name 和 qty。
ParseOrder("tea x3")→('tea', 3, None)ParseOrder(" cake x12 ")→('cake', 12, None)ParseOrder("juice")→('', 0, 'bad order')func ParseOrder(line string) (string, int, error)package main
import (
"errors"
"strconv"
"strings"
)
func ParseOrder(line string) (string, int, error) {
line = strings.TrimSpace(line)
name, qty := "", ""
// 在这里写:在 " x" 那里把 line 切成 name 和 qty
n, err := strconv.Atoi(qty)
if err != nil || n < 1 || name == "" {
return "", 0, errors.New("bad order")
}
return name, n, nil
}
写好了先点「运行」试试示例,没问题再点「提交」。