我在 python 上花了很多时间,现在正在尝试学习 golang。我正在尝试用 golang 做一些我经常用 python 做的事情;本质上是在一个程序中创建一个对象,然后将该对象传递给另一个程序中的方法(或函数)。我知道 golang 没有对象,但我也认为我不应该定义一个已经定义的类型。我的示例代码如下:方案一:import ( "github.com/bndr/gojenkins" "bitbucket.org/elsammons/senjink/actions")func main () { jenkins := gojenkins.CreateJenkins(url) _, err := jenkins.Init() if err != nil { panic(err) } jobs = actions.GetAllJobs(jenkins)}方案二:package actionsimport ( "github.com/bndr/gojenkins")//type Jenkins gojenkins.Jenkins//type Jobs gojenkins.Jobfunc GetAllJobs(jenkins gojenkins.Jenkins) jobNames gojenkins.Job { return jenkins.GetAllJobNames()}我也尝试过其他方法,就像定义注释掉的类型并使用 (jenkins *Jenkins) 等一样......但是我继续遇到错误,所以我显然错过了一些东西。感谢这里的任何可能对我的旅程有帮助的说明。
1 回答
HUX布斯
TA贡献1876条经验 获得超6个赞
对于您提供的错误,
bitbucket.org/elsammons/senjink/actions ./search.go:10: syntax error: unexpected gojenkins after top level declaration
您应该修复函数返回类型的语法。如果jobNames是您的返回变量的名称(顺便说一下,这不是推荐的做法..),您应该用括号将变量名称和类型括起来:
func GetAllJobs(jenkins gojenkins.Jenkins) (jobNames gojenkins.Job) {您的代码中似乎还有其他编译错误(例如 的返回GetAllJobs与 的返回不匹配gojenkins.Jenkins.GetAllJobNames),但这应该可以解决您现在所要求的问题。
关于您的问题,关于将对象从一个程序/库传递到另一个程序/库,Golang 就像每种语言一样:只需传递具有另一方期望的确切类型的对象,您应该没问题。
- 1 回答
- 0 关注
- 230 浏览
添加回答
举报
0/150
提交
取消
