如何使用Golang从一个函数返回不同类型的结构?

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{
 ...
}