我收到這個錯誤,說我沒有使用變量……但在我的菜鳥眼中,我看起來像:func Sqrt(x float64) float64 { z := float64(x); for i := 0; i < 10; i++ { z := z - (z*z - x) / (2 * z); } return z;}誰能指出我對語言的遺漏?我認為這與=vs.:=和范圍界定有關,但我不確定。
2 回答

慕尼黑的夜晚無繁華
TA貢獻1864條經驗 獲得超6個贊
在:=您的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
}

蕪湖不蕪
TA貢獻1796條經驗 獲得超7個贊
這是查看函數的另一種方式
func Sqrt(x float64) (z float64) {
z = x
for i := 0; i < 10; i++ {
z = z - (z*z - x)/(2*z);
}
return
}
- 2 回答
- 0 關注
- 192 瀏覽
添加回答
舉報
0/150
提交
取消