gpt4 book ai didi

variables - 如何通过包共享变量

转载 作者:行者123 更新时间:2023-12-01 22:43:46 25 4
gpt4 key购买 nike

我试图弄清楚如何从 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 .我在哪里做错了,我该如何返回 y到 main/和其他包?
谢谢

最佳答案

最基本的,一个 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)
}

也可以看看
  • Go Packages
  • How to Write Go Code


  • 这是针对您的特定错误的进一步调试。

    请注意 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没有返回值的函数。

    关于variables - 如何通过包共享变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60536165/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com