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

闹钟时间

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

闹钟里的时间写成 "07:30"。写 Minutes(clock),返回从半夜 0 点起过了几分钟("07:30" 是 450)和 nil。格式不对、不是数、小时不在 0–23、分钟不在 0–59,都返回 0 和错误 "bad time"。

示例
Minutes("07:30")→(450, None)
Minutes("7:5x")→(0, 'bad time')
Minutes("25:00")→(0, 'bad time')
函数func Minutes(clock string) (int, error)
main.go
package main

import (
	"errors"
	"strconv"
	"strings"
)

func Minutes(clock string) (int, error) {
	parts := strings.Split(clock, ":")
	if len(parts) != 2 {
		return 0, errors.New("bad time")
	}
	h, err := strconv.Atoi(parts[0])
	if err != nil {
		return 0, errors.New("bad time")
	}
	m := 0
	// 在这里写:照着小时那段,把 parts[1] 变成 m,出错就返回错误
	// 在这里写:小时或分钟超出范围,就返回错误
	return h*60 + m, nil
}
Ctrl + Enter 也能运行
结果

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