gpt4 book ai didi

ruby-on-rails - 使用作为方法的值在 ruby​​ 中搜索哈希

转载 作者:数据小太阳 更新时间:2023-10-29 07:12:41 24 4
gpt4 key购买 nike

我在搜索我的值是方法的散列时遇到问题。我只是不想运行 plan_type 与键匹配的方法。

def method(plan_type, plan, user)
{
foo: plan_is_foo(plan, user),
bar: plan_is_bar(plan, user),
waa: plan_is_waa(plan, user),
har: plan_is_har(user)
}[plan_type]
end

目前如果我传入“bar”作为plan_type,所有方法都会运行,我怎么能只运行plan_is_bar方法呢?

最佳答案

这个变体怎么样?

def method(plan_type, plan, user)
{
foo: -> { plan_is_foo(plan, user) },
bar: -> { plan_is_bar(plan, user) },
waa: -> { plan_is_waa(plan, user) },
har: -> { plan_is_har(user) }
}[plan_type].call
end

使用 lambdas 或 procs 是让事情变得懒惰的好方法,因为它们只有在接收到方法 call 时才会执行

因此,您可以使用 ->(lambda literal) 作为可能繁重计算的轻量级包装器,并且仅在需要时才调用

关于ruby-on-rails - 使用作为方法的值在 ruby​​ 中搜索哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31209846/

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