我在Go中有这个包
package dao
import (
"fmt"
"log"
)
type Product struct {
Name string
Price string
SalePrice string
ID string
URL string
}
var products []Product
func New(name string, price string, saleprice string, url string, id string) *Product {
return &Product{
Name: name,
Price: price,
SalePrice: saleprice,
URL: url,
ID: id,
}
}
func (p *Product) Add() {
products = append(products, p)
}
但是当我在main中使用它时。go,位于根级,我不能像这样调用p.Add()
p := dao.New("hello", "10", "20", "http", "id")
p.Add()
我得到的错误是这个cannot use p (type *Product) as type Product in append
,当我检查产品内的类型。add()我得到*dao.Product
。
内主类型为product。乘积和非乘积。类型不同。我该如何处理呢?
您试图将指向struct的指针附加到Product的切片,而不是*Product的切片。快速解决方案是修改
var products []Product
到
var products []*Product