如何从函数返回动态值



如何实现这样的函数?<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的值分配给指定的类型,如图所示。所以我认为返回接口将不起作用。需要帮助。

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

您可以使用interface从go lang函数返回动态值,这里有一个简单的程序:

package main
import (
"fmt"
)
func main() {
data := callfunc("string")
fmt.Println(data)
data2 := callfunc("integer")
fmt.Println(data2)
}
func callfunc(str string) interface{} {
if str == "string" {
return "I am a string"
} else if str == "integer" {
return 1
}
return nil
}

输出:

I am a string
1

相关内容

  • 没有找到相关文章

最新更新