如何 return 来自函数的动态值
How to return dynamic values from a function
如何实现这样的功能? <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)
}
您可以使用来自 go lang 函数的 interface
到 return 动态值,这里是相同的简单程序:
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
如何实现这样的功能? <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)
}
您可以使用来自 go lang 函数的 interface
到 return 动态值,这里是相同的简单程序:
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