加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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>")
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读