我学习函数,为教科书编写了一个简单的脚本,并且有2个错误。
package main
import "fmt"
func zero(x int) {
x = 0
return x
}
func main() {
x := 5
x = zero(x)
fmt.Println(x)
}
返回的参数太多(字符串返回x)
“太多”怎么样?这只是一个!
零(x)用作值(字符串x =零(x))
我不明白他对我说的是什么。
int在func中
package main
import "fmt"
func zero(x int) int {
x = 0
return x
}
func main() {
x := 5
x = zero(x)
fmt.Println(x)
}
package main
import "fmt"
func zero(x int) int {
x = 0
return x
}
func main() {
x := 5
x = zero(x)
fmt.Println(x)
}
我相信这更接近最初的想法......
package main
import "fmt"
func zero(x *int) {
*x = 0
return
}
func main() {
x := 5
zero(&x)
fmt.Println(x)
}
too many
表示您的函数返回的函数签名指定的值更多。
在你的情况下,你的函数签名func zero(x *int)
,说这个函数不返回任何参数,并且在函数体内,你返回一个值:return x
。所以1
是too many
预期的0
。正好还有1个。
然后zero(x) used as value
告诉你,你正在调用一个不返回任何值的函数,并且你试图将不存在的返回值赋给变量:x = zero(x)
。
这就是编译器告诉你使用zero(x)
作为值的原因