gpt4 book ai didi

ruby - 如何编写条件 Ruby case 语句并将参数传递到 case 中?

转载 作者:太空宇宙 更新时间:2023-11-03 18:06:33 24 4
gpt4 key购买 nike

我正在尝试找出一种方法,让 case 语句考虑从正则表达式传入的两个参数。

我的正则表达式示例是:

(/^(?:a|an|the) (RoleA|RoleB) 尝试访问 (New|Updated) Record$/) 时做 |role_type, record_type|.

我有一个 case 语句,现在只说明角色类型,但我如何让 case 部分也说明 role_typerecord_type?

我的目标是测试当记录类型为"new"或“已更新”时角色 A 是否定向到一组不同的端点,并且我希望角色 B 在传入"new"时定向到另一组端点和“更新”。如果它们被传递到相同的端点,那么仅 record_type 的 case 语句就足够了。

我现在拥有的是:

case record_type
when 'New'
<do something>
when 'Updated'
<do something>
end

我想根据角色切换行为。这没有用:

case record_type && role_type == 'RoleA'
when 'New'
<do something>
when 'Updated'
<do something>
end

case record_type && role_type == 'RoleB'
when 'New'
<do something>
when 'Updated'
<do something>
end

这段代码被跳过,我假设 Ruby 对使用哪个语句感到困惑。

最佳答案

您不能将“参数”传递给 casecase 之后的第一项是一个表达式,它返回将匹配的对象,您输入的表达式返回 truefalse。您可以将它们全部放在 if 表达式中,或者将两个对象放在一个数组中并匹配整个数组:

case [record_type, role_type]
when ['New', 'RoleA']
...
when ['New', 'RoleB']
...
when ['Updated', 'RoleA']
...
when ['Updated', 'RoleB']
...
end

关于ruby - 如何编写条件 Ruby case 语句并将参数传递到 case 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44164160/

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