首页 > 解决方案 > 如何从函数返回动态值

问题描述

如何实现这样的功能?<What_to_use_here>?

func callfunc(type string) <What_to_use_here> {
    if type == "string"{
        return "I am a string"
     } else if type == "integer"{
       return 1
     }
    return nil
}

type Sample struct {
   value_int int
   value_str string
}

type Sample s
s.value_int = callFunc("integer")
s.value_str = callFunc("string")

我需要将来自 callFunc 的值分配给指定的类型,如图所示。所以我认为返回界面不起作用。需要帮忙。

标签: functiongoreturnpolymorphismreturn-value

解决方案


type Sample struct {
    value_int int
    value_str string
}

func callFunc(typ string) interface{} {
    if typ == "string" {
        return "I am a string"
    } else if typ == "integer" {
        return 1
    }
    return nil
}

func main() {
    var s Sample
    s.value_int = callFunc("integer").(int)
    s.value_str = callFunc("string").(string)
    fmt.Println(s)
}

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


推荐阅读