首页 > 解决方案 > 如何处理 Go 语言中的字符串错误

问题描述

实现了功能words2numbers。示例:输入 = 七六八通过命令行参数传递,输出应为 768。

如果 input 是 seevn two Fivee ,则输出需要作为无效输入。

谁能帮助我在这种情况下如何处理错误。

我的代码:

package main

import (
    "fmt"
    "os"
)

func main() {
    arr := os.Args[1:]
    for i := 0; i < len(arr); i++ {
        words2num(arr[i])
    }
}

func words2num(p string) {
    switch p {
    default:
        fmt.Println("invalid input")

    case "zero", "ZERO":
        fmt.Print(" 0 ")

    case "one", "ONE":
        fmt.Print(" 1 ")

    case "TWO", "two":
        fmt.Print(" 2 ")

    case "three", "THREE":
        fmt.Print(" 3 ")

    case "four", "FOUR":
        fmt.Print(" 4")

    case "five", "FIVE":
        fmt.Print(" 5")

    case "six", "SIX":
        fmt.Print(" 6 ")

    case "seven", "SEVEN":
        fmt.Print(" 7 ")

    case "eight", "EIGHT":
        fmt.Print(" 8 ")

    case "nine", "NINE":
        fmt.Print(" 9 ")
    }
}

标签: go

解决方案


就您目前的代码而言,这可能很难做到。但是,需要的基本操作是default:在您的中添加一个switch { ... }返回错误的检查。

但是,如果任务是“如果输入无效则打印invalid input”(仅此而已),则需要更改解码函数的签名 t 返回(int, error)(或较小的整数类型),将数字累积在一个切片中,然后打印它们。如果您返回错误,请跳至“打印无效输入,然后退出”。


推荐阅读