ruby - 有没有办法让这个 Ruby 三元运算正确评估?

标签 ruby ternary-operator

下面一行代码

<% invite.accepted ? { @going, @not_going = 'selected', '' } : { @going, @not_going = '', 'selected' } %>

我试图将几个操作(计算表达式并相应地设置两个变量的值)压缩到一行中。

它引发了一个错误,声称有一个意外的逗号。

有没有办法让它工作,还是我只是让可怜的三元运算符重载?

(顺便说一下,这只是一个个人实验。我不介意使用一个简单的——尽管很麻烦——if/else 语句)

编辑:以下代码行有效!我会尽快核对正确答案!

<% invite.accepted ? ( @going, @not_going = 'selected', '' ) : ( @going, @not_going = '', 'selected' ) %>

最佳答案

怎么样:

@going, @not_going = invite.accepted ? ['selected', ''] : ['', 'selected']

w, x = y, zw, x = [y, z] 相同,所以这很好用,没有重复。

关于ruby - 有没有办法让这个 Ruby 三元运算正确评估?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11218347/

相关文章:

c++ - 类型转换指针和三元? : operator. 我是重新发明了轮子吗?

java - 为什么我的三元运算符会出现 NullPointerException?

ruby-on-rails - 从 Facebook 访问 token 中提取 app_id 和 user_id

ruby - 检查Ruby哈希中是否存在多个键值对?

c++ - 三元运算符作为命令?

c++ - 模板元编程三元值未达到基本情况

c - 意外结果,Gnu C 中的三元运算符

ruby-on-rails - R规范。测试 block 调用的参数

javascript - Rails应用程序不会使用 “embedd”附加youtube链接

ruby-on-rails - rails : call method within model