如何实现这样的函数?<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