当我尝试使用uint64类型的命令行参数时,当我将默认值设置为有效的无符号64位数时,我遇到了编译错误。
编译错误: 表达式类型不匹配,预期类型为uint64较少... 它突出显示这里的数字5000,表明这不是一个可接受的值。
代码:
var golferInstance uint64
flag.Uint64Var(&golferInstance, "inst", 5000, "Golfer Instance ID, this should be Globaly Unique ")
flag.Parse()
我没有看到上面的声明有什么问题,那么为什么编译错误?
我在这里缺少什么? (我相信一定是愚蠢的,我没有弄清楚) 任何帮助表示赞赏。
由于
答案 0 :(得分:0)
go-lang-idea-plugin中的检查类型在某些类型的不匹配检测方面存在一些问题 请参阅issue 348(应该在该插件的最新版本中解决)
您可以取消选择该检查员。
在界面中,它被称为“
Highlight mismatched types
”,我相信这就是那个 来自检查的消息是:“Expression type mismatch, expected type is ...
”在检测到构造“
1 * time.Second
”中的“time.Sleep(1 * time.Second)
”是正确的“Duration
”类型时,它似乎也存在问题,并且它会尝试像这样'{{ {1}}”。
回到命令行,和/或确保所有组件都是最新的(golang IntelliJ插件,Go本身),可以提供帮助。