如果您得到一个错误,如:
interface conversion: interface {} is *purchase.User, not *purchase.User (types from different scopes)
由于错误消息中的预期类型和实际类型完全相同,因此您发送的类型似乎是正确的。
您可能在另一个包(purchase2(中创建了另一个指向*purchase.User的类型,这是您的方法正在考虑接收但您正在发送(purchase.User(的类型
例如:
purchase
包装
type User struct {
firstName string
lastName string
}
purchase2
包装
import purchase
type User purchase.User
检查你指的是哪种类型。
另一个原因是:您以某种方式导入了两次包,使用了两个不同的导入路径。除非在特殊情况下(AST代码重写器、非标准销售等(,否则这种情况不太可能出现。
如果您使用不同的路径导入同一个包,则很有可能您做错了什么。停止:P