盡管我認為標題中沒有正確描述我遇到的問題,但這是我現(xiàn)在能夠描述的唯一方式。Mini我有一個在另一個文件中定義的結構。一組 Minis 應該被描述為一片。因為我想在Mini將結構附加到切片時更改結構的某些字段,所以需要用于附加的自定義函數(shù)。直到現(xiàn)在我得到以下代碼:import ( "fmt" "reflect")//Minis is a slice of all Ministype Minis struct { AllMinis []*Mini}//Append adds a new Mini to the Minis slicefunc (m *Minis) Append(n *Mini) { m.AllMinis = append(m.AllMinis, n)}這段代碼工作得很好。但在我看來,只有一個字段的結構有點愚蠢。有什么方法可以在結構上創(chuàng)建方法或一般更優(yōu)雅的解決方案?謝謝!
1 回答

楊魅力
TA貢獻1811條經驗 獲得超6個贊
將類型聲明為切片:
//Minis is a slice of all Minis
type Minis []*Mini
//Append adds a new Mini to the Minis slice
func (m *Minis) Append(n *Mini) {
*m = append(*m, n)
}
concat恐慌,因為QForename將一個 nil 切片指針作為接收者傳遞給concat. 使用非零指針修復:
func (m *Minis) QForename(q string) *Minis {
var matches Minis
for _, n := range *m {
if n.Forename == q {
matches.concat(n)
}
}
return &matches
}
- 1 回答
- 0 關注
- 138 瀏覽
添加回答
舉報
0/150
提交
取消