我收到此错误消息,说我没有使用变量……但是在我的菜鸟眼中,看起来我在:
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
}
问题内容: 我偶然发现了一个奇怪的问题,下面的代码无法编译: 错误(代码是linter推荐的代码)。: 注意,确实使用了该变量。 但是,如果我添加了else块-一切都会按预期编译: 这看起来像是编译器中的错误,还是一个已知问题?任何想法?(我正在使用go 1.11) 编辑:到目前为止的所有被告。按照:https : //golang.org/ref/spec#Short_variable_decl
问题内容: 我正在学习Google的新语言Go。我只是在尝试一些东西,我注意到,如果您声明一个变量并且不对其执行任何操作,则go编译器(在我的情况下为 8g )将无法 编译,并显示以下错误:。令我惊讶的是,大多数语言编译器只是 警告 您有关未使用的变量,但仍会编译。 无论如何,我能解决这个问题吗?我检查了编译器的文档,但看不到任何会改变此行为的内容。有没有一种方法可以删除以进行编译? 问题答案:
问题内容: 我正在学习Go,但感到有点烦人,在编译时,我不应该保留任何变量或包。 这确实让我放慢了脚步。例如,我只想声明一个新软件包并计划以后使用它,或者只是取消注释某些命令以进行测试。我总是会收到错误,需要对所有这些用法进行评论。 Go中有什么方法可以避免这种检查吗? 问题答案: 该错误将迫使您编写更好的代码,并确保使用声明或导入的所有内容。它使阅读他人编写的代码更加容易(您始终可以确保将使用所
问题内容: 我有以下函数给我“已声明变量且未使用变量”错误: 它给了我以下错误: 东西是,,并且都在使用中。我无法解释为什么编译器认为您不是。 问题答案: 正如@kostix所说,是本地范围。试试这个代码
有没有办法避免这种签到围棋?
任务“:app:ExternalNativeBuildDebug”执行失败。生成命令失败。执行进程/home/raed/android/sdk/cmake/3.10.2.4988404/bin/ninja时出错,参数为{-c/home/raed/androidstudioprojects/simd/app/.CXX/cmake/debug/armeabi-v7a native-lib}ninja: