我需要將映射發(fā)送到在導(dǎo)入包中聲明的函數(shù),并不斷收到此錯誤:./main.go:21: 不能在函數(shù)參數(shù)中使用 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}我應(yīng)該如何將映射的值傳遞給導(dǎo)入的包函數(shù)或從父包獲取函數(shù)內(nèi)部的映射值?這甚至可能還是有解決方法?
1 回答

慕村225694
TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個贊
盡管這兩種類型的名稱相同并且包含相同的結(jié)構(gòu),但它們并不是相同的類型。一個類型總是屬于一個包,而這兩種類型屬于不同的包。
因此,您不應(yīng)將類型ticket
從some_package
to復(fù)制粘貼main
,而是 1. 通過將其命名為大寫將其導(dǎo)出到其他包:type Ticket struct
; 和 2. 從main
like使用它make(map[string]sp.Ticket)
。
- 1 回答
- 0 關(guān)注
- 200 瀏覽
添加回答
舉報(bào)
0/150
提交
取消