关于lint报错“if语句仅可与自身使用的赋值语句紧抱”的技术疑问
Go Lint错误疑问:if语句紧抱规则困惑
我遇到了一个lint错误,报错信息如下:
if statements should only be cuddled with assignments used in the if statement itself
Linter标记了代码中的if setToWait {行格式不规范。以下是相关代码:
func doThing() { for { hasAnyGlobalUnicast := false if setToWait { for _, nic := range *data.Result { // 检查接口是否有全局单播地址 for _, addr := range *nic.IPAddresses { if ip := net.ParseIP(addr.Address); ip != nil && ip.IsGlobalUnicast() { hasAnyGlobalUnicast = true } } } } if hasAnyGlobalUnicast { return data, err } } }
变量hasAnyGlobalUnicast在if setToWait代码块内被赋值,且在该代码块结束后被检查。既然它的更新范围紧邻该if语句,为何Linter反而报错,而非要求将该变量与if语句紧抱?
内容的提问来源于stack exchange,提问作者Ninjaxor
相关产品推荐
相关产品推荐

