我学习函数,为教科书编写了一个简单的脚本,并且有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))
我不明白他对我说的话。
答案 0 :(得分:1)
int in func
package main
import "fmt"
func zero(x int) int {
x = 0
return x
}
func main() {
x := 5
x = zero(x)
fmt.Println(x)
}
答案 1 :(得分:0)
package main
import "fmt"
func zero(x int) int {
x = 0
return x
}
func main() {
x := 5
x = zero(x)
fmt.Println(x)
}
答案 2 :(得分:0)
我相信这更接近最初的想法......
package main
import "fmt"
func zero(x *int) {
*x = 0
return
}
func main() {
x := 5
zero(&x)
fmt.Println(x)
}
答案 3 :(得分:0)
too many
表示您的函数返回的函数签名指定的值更多。
在您的情况下,您的函数签名func zero(x *int)
表示此函数不返回任何参数,并且在函数体内,您将返回一个值:return x
。因此预计1
too many
为0
。正好还有1个。
然后zero(x) used as value
告诉您正在调用一个不返回任何值的函数,并且您尝试将不存在的返回值分配给变量:x = zero(x)
。
这就是编译器告诉您使用zero(x)
作为值