首页 > 解决方案 > 如何限制字符串标志中可接受的值范围?

问题描述

我声明了一个带有默认值的字符串标志,如下所示:

animalFlag := flag.String("typeOfAnimal", "Cat", "Type of animal")

我想强制该用户只能给出一个特定的字符串(如"Dog", "Lion")而不是一些随机字符串,如"Rose". 我如何在 Go 中执行此操作?

标签: gocommand-line-interfacecommand-line-arguments

解决方案


flag包不支持限制标志的有效/接受值集。

您可以做的是执行标志值验证,这通常是一种很好的做法:在应用程序开始时检查值,如果提供的值无效(根据您的任意规则),则停止并显示错误消息。

请参阅相关问题:Go 中的命令行标志可以设置为强制吗?


推荐阅读