Ale*_*Bar 13 reflection go python-3.x
如何将字典作为函数的参数列表传递,如在Go 3中的Python 3中?
Python 3:
def bar(a,b,c):
print(a,b,c)
args={c: 1, b: 2, a: 3}
bar(**args)
Run Code Online (Sandbox Code Playgroud)
空白:
func bar( a, b, c int) {
fmt.Printf("%d, %d, %d", a, b, c)
}
func main(){
args := make(map[string]int)
args["a"] = 3
args["b"] = 2
args["c"] = 1
// what next ?
}
Run Code Online (Sandbox Code Playgroud)
dsk*_*ner 19
我不相信这是可能的.你需要使用一个结构来做任何事情,甚至远程接近这个(它是一个遥远的相似)
type Args struct {
A, B, C int
}
func bar(args *Args) {
fmt.Printf("%d, %d, %d", args.A, args.B, args.C)
}
func main() {
args := new(Args)
args.A = 3
args.B = 2
args.C = 1
bar(args)
}
Run Code Online (Sandbox Code Playgroud)
Lin*_*ope 11
除了我认为不需要重复的其他答案之外,请注意Go将使用提供的多个返回参数自动解包函数调用:
(也就是说,函数的参数列表的类型与其他函数的返回列表相同).
func Args() (a int, b int, c int) {
return 1,2,3
}
func Bar(a,b,c int) {
fmt.Println(a,b,c)
}
func main() {
Bar(Args())
}
Run Code Online (Sandbox Code Playgroud)
会打印1,2,3.显然这个例子有点傻,但我发现这涵盖了大多数tuple和dict解包作为Python中的参数的情况,这往往是将一个函数的返回值作为另一个函数的参数传递的快速而肮脏的方式.
| 归档时间: |
|
| 查看次数: |
6337 次 |
| 最近记录: |