go - 如何处理 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 ")
}
}
解决方案
就您目前的代码而言,这可能很难做到。但是,需要的基本操作是default:
在您的中添加一个switch { ... }
返回错误的检查。
但是,如果任务是“如果输入无效则打印invalid input
”(仅此而已),则需要更改解码函数的签名 t 返回(int, error)
(或较小的整数类型),将数字累积在一个切片中,然后打印它们。如果您返回错误,请跳至“打印无效输入,然后退出”。
推荐阅读
- amazon-web-services - Selenium 在 AWS-batch 上失败
- node.js - Loopback 4 POST 方法给出 422 错误
- outlook - 在 Graph API 中为其他用户列出和创建任务
- c - C风格的宏编译
- powershell - Copy-Item 使用带有通配符的 list.txt 作为参考
- python - 子集化后如何添加列?
- reactjs - 为什么 setState 在值保持不变时重新渲染组件
- c++ - ExternalProject_Add 用于 gflags,但构建多次
- laravel - 在后台执行 Laravel/Symfony/Artisan 命令无法实时运行
- python - 如何在 CSV 文件中选择一列以使用 python 进行标记化?