golang:我如何处理索引超出范围的错误?
发布时间:2020-12-16 19:03:47 所属栏目:大数据 来源:网络整理
导读:我在Go.my程序中编写CLI接口程序,要求用户输入文件名作为参数.以下是我写的处理代码 用户未输入任何参数的情况.但它恐慌并给出错误“索引超出范围”.我怎么处理这个? package mainimport ( "encoding/hex" "fmt" "io/ioutil" "log" "os")func main() { if l
我在Go.my程序中编写CLI接口程序,要求用户输入文件名作为参数.以下是我写的处理代码
用户未输入任何参数的情况.但它恐慌并给出错误“索引超出范围”.我怎么处理这个? package main import ( "encoding/hex" "fmt" "io/ioutil" "log" "os" ) func main() { if len(os.Args) == 0 { fmt.Println("usage: gohex <filename>") os.Exit(1) } else { filename := os.Args[1] data,err := ioutil.ReadFile(filename) if err != nil { log.Fatal(err) } fmt.Println(hex.Dump(data)) } }
你的问题依赖于这一行:
if len(os.Args) == 0 你正在检查第一个参数,你应该是文件名,但实际上是go / executable文件名.因此,如果您希望检查是否已提供参数,则需要检查参数长度是否大于1.将代码更改为: if len(os.Args) <= 1 { log.Fatal("usage: gohex <filename>") } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |