go config_error ai_generated true

flag: -flag 需要一个参数:-value

flag: -flag needs an argument: -value

ID: go/flag-parse-unexpected-value

其他格式: JSON · Markdown 中文 · English
88%修复率
84%置信度
1证据数
2024-04-05首次发现

版本兼容性

版本状态引入弃用备注
go1.21 active
go1.22 active
go1.23 active

根因分析

一个布尔标志或期望值的标志后面跟着另一个标志而没有值分隔符,导致下一个标志被解释为值。

English

A boolean flag or a flag expecting a value is followed by another flag without a value separator, causing the next flag to be interpreted as the value.

generic

官方文档

https://pkg.go.dev/flag#FlagSet.Parse

解决方案

  1. 在空格后提供值:-flag value,或使用 =:-flag=value。确保标志类型匹配(例如 int、string)。
  2. 如果标志应为布尔型,将其定义为 bool 且不传递值:flag.Bool("flag", false, "usage")

无效尝试

常见但无效的做法:

  1. Adding = between flag and value: -flag=value 40% 失败

    This works for flags expecting values, but if the flag is defined as bool, it still fails because bool flags don't take values.

  2. Using double dashes --flag value 60% 失败

    Go's flag package treats -- as prefix for long flags; it doesn't change the parsing behavior for value requirement.