我是golang的新手。我需要設計一個函數來根據輸入創建不同類型的對象。但我沒有弄清楚如何設計界面。這裏來我的代碼:golang的對象工廠
package main
import (
"fmt"
)
type AA struct{
name string
}
func (this *AA) say(){
fmt.Println("==========>AA")
}
type BB struct{
*AA
age int
}
func (this *BB) say(){
fmt.Println("==========>BB")
}
func ObjectFactory(type int) *AA {
if type ==1 {
return new(AA)
}else{
return new(BB)
}
}
func main() {
obj1 := ObjectFactory(0)
obj1.say()
obj2 := ObjectFactory(0)
obj2.say()
}
無論我問ObjectFactory返回* AA或接口{},編譯器告訴我錯誤。我怎樣才能使它工作?
什麼確切錯誤你會得到什麼?編譯器告訴你什麼是錯誤的? – user2357112
看起來好像你試圖在Go中模擬傳統的OOP習慣用法(或強制),這不是一個好主意,你可能會考慮重新設計你的解決方案 – Volker