为了账号安全,请及时绑定邮箱和手机立即绑定

试图将程序 1 中创建的类型(“对象”)传递给程序 2 中的函数

试图将程序 1 中创建的类型(“对象”)传递给程序 2 中的函数

Go
撒科打诨 2021-12-20 10:54:21
我在 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 就像每种语言一样:只需传递具有另一方期望的确切类型的对象,您应该没问题。


查看完整回答
反对 回复 2021-12-20
  • 1 回答
  • 0 关注
  • 230 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号