我收到这个错误,说我没有使用变量……但在我的菜鸟眼中,我看起来像:
func Sqrt(x float64) float64 {
z := float64(x);
for i := 0; i < 10; i++ {
z := z - (z*z - x) / (2 * z);
}
return z;
}
谁能指出我对这种语言的遗漏?我认为这与 =
vs. :=
和范围有关,但我不确定。
最佳答案
你的 for 循环中的 :=
声明了一个新变量 z
,它隐藏了外部 z
。把它变成一个普通的 =
来解决这个问题。
func Sqrt(x float64) float64 {
z := x
for i := 0; i < 10; i++ {
z = z - (z*z - x) / (2 * z);
}
return z;
}
顺便说一句,为了获得相同的精度和更快的速度,您可以尝试以下实现,它一次执行两个步骤:
func Sqrt(x float64) float64 {
z := x
for i := 0; i < 5; i++ {
a := z + x/z
z = a/4 + x/a
}
return z
}
关于go - "declared and not used"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18241655/