Kodewick
开始学 →
小挑战←→0 / 70

读一行点单

#065小挑战字符串错误处理约 7 分钟

收银机收到的点单长这样:"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)
main.go
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
}
Ctrl + Enter 也能运行
结果

写好了先点「运行」试试示例,没问题再点「提交」。