我试图弄清楚如何将 a 文件中的函数的值返回package name到另一个package. 例如让我们假设你有
package main
func main(){
x := 5
a := res.Test(x)
}
package res
func Test(x int) (y int){
y := x*2
return y
}
如果我编译它,我会得到一个错误:res.Test used as value. 我在哪里做错了,我该如何返回ymain/ 和其他包?谢谢
蝴蝶不菲
浏览 128回答 1
1回答
波斯汪
最基本的,一个 Go 包必须在它们自己的文件目录中。res进入~/go/src/res/。// ~/go/src/res/res.gopackage resfunc Test(x int) (y int){ // Note that y is already declared. y = x*2 return y}然后你main.go可以导入这个包。package mainimport( "res" "fmt");func main(){ x := 5 a := res.Test(x) fmt.Println(a)}这是针对您的特定错误的进一步调试。请注意,res您发布的代码不应编译。你应该得到一个像./res.go:4:7: no new variables on left side of :=.res.Test used as value表示res.Test不返回值,但您还是尝试将其用作一个值。你res.Test 确实有一个返回值。此外,您的 main.go 没有导入res. 你应该得到一个错误,undefined: res但你没有。这表明有另一个res包在某个地方浮动,其Test函数没有返回值。