相同操作数¶
ID: go/redundant-operation
Kind: problem
Security severity:
Severity: warning
Precision: very-high
Tags:
- correctness
- external/cwe/cwe-480
- external/cwe/cwe-561
Query suites:
- go-security-and-quality.qls
许多算术或逻辑运算符在应用于相同操作数时会产生微不足道的结果:例如,如果 x
是数字,则 x-x
为零,否则为 NaN
;x&x
始终等于 x
。 这样的代码通常是拼写错误的结果,例如变量名拼写错误。
建议¶
仔细检查表达式,确保它不是错误的症状。
示例¶
在下面的示例中,函数 avg
旨在计算两个数字 x
和 y
的平均值。 但是,程序员不小心两次使用了 x
,因此该函数只返回 x
package main
func avg(x, y float64) float64 {
return (x + x) / 2
}
可以通过更正拼写错误来解决此问题
package main
func avgGood(x, y float64) float64 {
return (x + y) / 2
}