Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将映射传递到导入的Golang包中的函数时出错_Go_Namespaces - Fatal编程技术网

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

将映射传递到导入的Golang包中的函数时出错,go,namespaces,Go,Namespaces,我需要发送一个映射到导入包中声明的函数,并不断收到此错误: ./main.go:21:无法在函数参数中使用m(类型映射[string]ticket)作为类型映射[string]some_package.ticket 这是golang GOPATH文件夹中main.go的代码: package main import ( "time" sp "./some_package" ) type ticket struct { Timest

我需要发送一个映射到导入包中声明的函数,并不断收到此错误:

./main.go:21:无法在函数参数中使用m(类型映射[string]ticket)作为类型映射[string]some_package.ticket

这是golang GOPATH文件夹中main.go的代码:

package main

import (    
        "time"
         sp "./some_package"
        )

type ticket struct {
  Timestamp int64
  Identification_number int
}
var m map[string]ticket


func main() {
  humans := 10
  m = make(map[string]ticket)
  m["ticket1"] = ticket{time.Now().Unix(), 1234}
  sp_ := sp.New(humans)
  sp_.SetTicket(m)
}
package some_package

type 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
}
这是golang GOPATH文件夹中some_package.go in/some_package的代码:

package main

import (    
        "time"
         sp "./some_package"
        )

type ticket struct {
  Timestamp int64
  Identification_number int
}
var m map[string]ticket


func main() {
  humans := 10
  m = make(map[string]ticket)
  m["ticket1"] = ticket{time.Now().Unix(), 1234}
  sp_ := sp.New(humans)
  sp_.SetTicket(m)
}
package some_package

type 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
}
我应该如何将map的值传递给导入的包函数,或者如何在函数内部获取map值 来自父包?
这是可能的还是有解决办法?

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


因此,您不应该将类型
ticket
some\u package
复制粘贴到
main
,而应该是1。以大写字母命名,将其导出到其他包:
键入Ticket struct
;二,。从
main
使用它,比如
make(map[string]sp.Ticket)

顺便说一下,
“/some\u package”
作为包的路径是有效的,但不推荐使用。请参阅教程。感谢您的建议:)