go - "declared and not used"错误

标签 go

我收到这个错误,说我没有使用变量……但在我的菜鸟眼中,我看起来像:

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/

相关文章:

go - 为什么 golang 中的 rune 是 int32 而不是 uint32 的别名?

json - 来自比特币 api 的 Golang json 查询返回无效字符

go - x/net/websocket 获取类似 *http.Request 的 cookie

c++ - 释放 cgo 库的内存

json - 在 http 响应中将任意字符串编码为 JSON

email - 如何在没有任何 smtp 服务器的情况下在 golang 中发送电子邮件

templates - 迭代时从其他表传递字段

go - API 调用会创建 goroutines 吗?

string - 修剪字符串的后缀或扩展名?

networking - GoLang 监听端口范围