gpt4 book ai didi

ruby - 调用关闭和 splats

转载 作者:数据小太阳 更新时间:2023-10-29 08:57:16 25 4
gpt4 key购买 nike

使用yield_self,一元方法的参数可以预先放置在方法链中。因此,给定:

Foo = Struct.new(:one_arg)

这一行:

Foo.new("x")

相当于那一行:

"x".yield_self(&Foo.method(:new))

如果提供了一个接受多个参数的方法和一个数组,其中每个元素对应于该方法的一个参数,则类比不起作用。因此,给定:

Foo = Struct.new(:x, :y)
args = [:first_arg, :second_arg]

这一行:

Foo.new(*args)

不等同于:

args.yield_self(&Foo.method(:new))

相当于:

Foo.new(args)

但我宁愿写这样的东西。有什么惯用的方法可以用这种方式实现数组展开吗?

最佳答案

这是你能做的最好的,我认为:

args.yield_self {|ary| Foo.new(*ary)}

这是一个管道,好吧。值得所有额外的代码吗?您决定。

关于ruby - 调用关闭和 splats,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48815757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com