我試圖弄清楚如何將 a 文件中的函數的值返回package name到另一個package. 例如讓我們假設你有package mainfunc main(){ x := 5 a := res.Test(x)}package resfunc Test(x int) (y int){ y := x*2 return y}如果我編譯它,我會得到一個錯誤:res.Test used as value. 我在哪里做錯了,我該如何返回ymain/ 和其他包?謝謝
1 回答

波斯汪
TA貢獻1811條經驗 獲得超4個贊
最基本的,一個 Go 包必須在它們自己的文件目錄中。res進入~/go/src/res/。
// ~/go/src/res/res.go
package res
func Test(x int) (y int){
// Note that y is already declared.
y = x*2
return y
}
然后你main.go可以導入這個包。
package main
import(
"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
函數沒有返回值。
- 1 回答
- 0 關注
- 156 瀏覽
添加回答
舉報
0/150
提交
取消