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

将映射传递给导入的 Golang 包中的函数时出错

将映射传递给导入的 Golang 包中的函数时出错

Go
明月笑刀无情 2021-09-13 10:54:31
我需要将映射发送到在导入包中声明的函数,并不断收到此错误:./main.go:21: 不能在函数参数中使用 m (type map[string]ticket) 作为类型 map[string]some_package.ticket这是 golang GOPATH 文件夹中 main.go 的代码:package mainimport (            "time"         sp "./some_package"        )type ticket struct {  Timestamp int64  Identification_number int}var m map[string]ticketfunc main() {  humans := 10  m = make(map[string]ticket)  m["ticket1"] = ticket{time.Now().Unix(), 1234}  sp_ := sp.New(humans)  sp_.SetTicket(m)}这是 golang GOPATH 文件夹中 /some_package 中 some_package.go 的代码:package some_packagetype park struct{  card map[string]ticket  people int}type ticket struct {  Timestamp int64  Identification_number int}func (p *park) SetTicket(m map[string]ticket)(){}func New(humans int)(p *park){  p.card = make(map[string]ticket)  p.people = humans  return p}我应该如何将映射的值传递给导入的包函数或从父包获取函数内部的映射值?这甚至可能还是有解决方法?
查看完整描述

1 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

尽管这两种类型的名称相同并且包含相同的结构,但它们并不是相同的类型。一个类型总是属于一个包,而这两种类型属于不同的包。

因此,您不应将类型ticketsome_packageto复制粘贴main,而是 1. 通过将其命名为大写将其导出到其他包:type Ticket struct; 和 2. 从mainlike使用它make(map[string]sp.Ticket)


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

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信