我需要将映射发送到在导入包中声明的函数,并不断收到此错误:./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个赞
尽管这两种类型的名称相同并且包含相同的结构,但它们并不是相同的类型。一个类型总是属于一个包,而这两种类型属于不同的包。
因此,您不应将类型ticket
从some_package
to复制粘贴main
,而是 1. 通过将其命名为大写将其导出到其他包:type Ticket struct
; 和 2. 从main
like使用它make(map[string]sp.Ticket)
。
- 1 回答
- 0 关注
- 174 浏览
添加回答
举报
0/150
提交
取消