| 123456789101112131415161718192021222324252627 |
- // Package score 提供成绩转换与校验功能。
- package score
- import (
- "fmt"
- "strconv"
- )
- // Max 是导出的常量,大写开头,其他包可以使用 score.Max。
- const Max = 100
- // valid 是包内函数,小写开头,其他包不能直接调用。
- func valid(value int) bool {
- return value >= 0 && value <= Max
- }
- // Parse 将文本转换为合法成绩。大写开头,允许其他包调用。
- func Parse(text string) (int, error) {
- value, err := strconv.Atoi(text)
- if err != nil {
- return 0, err
- }
- if !valid(value) {
- return 0, fmt.Errorf("成绩 %d 无效,应在 0~%d 之间", value, Max)
- }
- return value, nil
- }
|