gpt4 book ai didi

go - 动态结构作为参数 Golang

转载 作者:IT王子 更新时间:2023-10-29 01:38:36 26 4
gpt4 key购买 nike

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

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)
}

最佳答案

您可以使用这样的接口(interface)和 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)
}

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

关于go - 动态结构作为参数 Golang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45139954/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com