I have a function which queries database, then, depending on result form it, can create a struct OrderWithoutDetails
or OrderWithDetails
depending on the presence of details about the order.
How do I make the function to be able to return result of both types?
You can use interface{}
func queryDb() interface{}{
}
But the better will be if your 2 type of struct can have a common function, that can satisfy a common interface, it will be cleaner. Example :
type s1 struct{
id int
name string
}
type s2 struct{
id int
age int
}
type reDB interface {
my_print()
}
func (r *s1) my_print(){
fmt.Print(s1.id)
}
func (r *s2) my_print(){
fmt.Print(s1.id)
}
func queryDb() reDB{
...
}