为了账号安全,请及时绑定邮箱和手机立即绑定

下面的 c.Args() > 0 有什么用

下面的 c.Args() > 0 有什么用

Go
猛跑小猪 2021-09-13 17:00:33
此代码来自cliGo 包:https : //github.com/codegangsta/clipackage mainimport (    "github.com/codegangsta/cli"    "os")func main() {    app := cli.NewApp()    app.Name = "greet"    app.Usage = "fight the loneliness!"    app.Flags = []cli.Flag{        cli.StringFlag{            Name:  "lang, l",            Value: "english",            Usage: "language for the greeting",        },    }    app.Action = func(c *cli.Context) {        name := "someone"        if len(c.Args()) > 0 {            name = c.Args()[0]        }        if c.String("lang") == "spanish" {            println("Hola", name)        } else {            println("Hello", name)        }    }    app.Run(os.Args)}我是 Go 初学者,我理解一切,除了这部分:if len(c.Args()) > 0 {    name = c.Args()[0]}那个块说的是什么?为什么有必要?
查看完整描述

1 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

该函数Args返回一个对象Args,它是一个字符串切片(请参阅context.go):

type Args []string

要获取该切片 ( [0])的第一个元素,必须事先检查它是否不为空,从而进行len测试。如果不这样做并且切片恰好是空的,则会出现index out of range运行时错误并且程序会出现混乱。


查看完整回答
反对 回复 2021-09-13
  • 1 回答
  • 0 关注
  • 149 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信