有一个函数,需要三个参数.
f(a, b, c) = # do stuff
Run Code Online (Sandbox Code Playgroud)
还有另一个返回元组的函数.
g() = (1, 2, 3)
Run Code Online (Sandbox Code Playgroud)
如何将元组作为函数参数传递?
f(g()) # ERROR
Run Code Online (Sandbox Code Playgroud)
Gui*_*rza 29
使用Nanashi的例子,线索是你打电话时的错误 f(g())
julia> g() = (1, 2, 3)
g (generic function with 1 method)
julia> f(a, b, c) = +(a, b, c)
f (generic function with 1 method)
julia> g()
(1,2,3)
julia> f(g())
ERROR: no method f((Int64,Int64,Int64))
Run Code Online (Sandbox Code Playgroud)
这表明这将元组(1, 2, 3)作为输入f而不解包它.要打开包装,请使用省略号.
julia> f(g()...)
6
Run Code Online (Sandbox Code Playgroud)
Julia手册中的相关部分如下:http://julia.readthedocs.org/en/latest/manual/functions/#varargs-functions
使用apply.
julia> g() = (1,2,3)
g (generic function with 1 method)
julia> f(a,b,c) = +(a,b,c)
f (generic function with 1 method)
julia> apply(f,g())
6
Run Code Online (Sandbox Code Playgroud)
如果这有帮助,请告诉我们。
| 归档时间: |
|
| 查看次数: |
4379 次 |
| 最近记录: |