动态结构作为参数 Golang

Ang*_*ger 4 go

我想知道是否可以将动态结构作为函数的参数传递?

type ReturnValue struct {
   Status string
   CustomStruct // here should store any struct given
} 

func GetReturn(status string, class interface{}){
   var result = ReturnValue {Status : status, CustomStruct : //here any struct should be stored}

   fmt.Prinln(result)
}

type Message1 struct {
   message : string
}

func main(){
   var message = Message1 {message: "Hello"}
   GetReturn("success",  message)
}
Run Code Online (Sandbox Code Playgroud)

Ken*_*ent 6

您可以使用这样的接口和 if 语句将其返回到它作为 tho 组织的任何结构。

import (
    "fmt"
)

type ReturnValue struct {
   Status string
   CustomStruct interface{}
} 

func GetReturn(status string, class interface{}){
   var result = ReturnValue {Status : status, CustomStruct: class}

   fmt.Println(result)

   msg, ok := result.CustomStruct.(Message1)
   if ok {
      fmt.Printf("Message1 is %s\n", msg.message)
   }
}

type Message1 struct {
   message string
}

type Message2 struct {
   message string
}

func main(){
   var m1 = Message1 {message: "Hello1"}
   GetReturn("success",  m1)

   var m2 = Message2 {message: "Hello2"}
   GetReturn("success",  m2)
}
Run Code Online (Sandbox Code Playgroud)

https://play.golang.org/p/L6VYV80x27