我在几个地方读到 Julia 中的管道仅适用于只接受一个参数的函数。这不是真的,因为我可以执行以下操作:
function power(a, b = 2) a^b end
3 |> power
> 9
它工作正常。
但是,我无法完全理解管道。例如,为什么这不起作用?:
3 |> power()
> MethodError: no method matching power()
我实际上想做的是使用管道并定义其他参数,例如关键字参数,以便在管道时实际上清楚传递哪个参数(即唯一的位置参数):
function power(a; b = 2) a^b end
3 |> power(b = 3)
有没有办法做这样的事情?
我知道我可以解决这个包,但老实说,在一半行的开头Pipe
写起来感觉有点笨拙。@pipe
在包中具有令人信服R
的magritrr
逻辑(在我看来):它默认将管道左侧的内容作为右侧函数的第一个参数传递 - 我正在寻找类似的东西。