登录
首页 >  Golang >  Go问答

语法错误:变量用作值,Go 中的 for 循环

来源:stackoverflow

时间:2024-04-29 11:06:34 228浏览 收藏

一分耕耘,一分收获!既然打开了这篇文章《语法错误:变量用作值,Go 中的 for 循环》,就坚持看下去吧!文中内容包含等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!

问题内容

我对 go 完全陌生,正在浏览 https://tour.golang.org/flowcontrol/8

我尝试了以下 for 循环(它是否真正解决了页面提出的问题无关紧要,我只对这里的语法感兴趣)。您可以假设给出了 zx

for z < x; z -= (z*z - x) / (2*z) {
    fmt.println(z)
}

当我尝试运行时出现以下错误:

./prog.go:9:36:语法错误:意外的 {,需要分号或换行符 ./prog.go:10:17: 语法错误:z -= (z * z - x) / (2 * z) 用作值

我可以通过将循环更改为这样来消除第一个错误:

for z < x; z -= (z*z - x) / (2*z); {
    fmt.Println(z)
}

但我仍然收到第二个错误。


解决方案


你的循环应该是这样的

for ;z < x; z -= (z*z - x) / (2*z) { fmt.Println(z) }

; 应该出现在 z < x 条件之前,这是因为, for 循环的语法为 for [control var] ; [健康)状况] ; [迭代] { //正文 }

只需一个;就可以用作空语句,因此通过使用它,我们为for循环提供了所有必需的参数。 ; x < z; x++ 正如你所看到的,除了第一个分号表示空/空语句(因为我们没有设置任何变量),第二个是条件,第三个是迭代命令。

现在您可以清楚地了解第二种方法 z < x; z -= (z*z - x) / (2*z); z < x 是控制变量,这会导致错误,因为 (z < x) 不是变量。错误的原因是 z -=( z*z-x)/(2*z) 被视为条件值,因为这不是一个值而是一个语句,因此会引发错误。

希望你能理解...

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>