ruby - 多个结果?样式 if 子句

标签 ruby

我有以下代码:i ? "x": "y" 但我不想只返回“x”或“y”,我还想将 i 设置为 true 或 false。 我? ("x"; i = false) : ("y"; i = true) 但是不起作用。

最佳答案

(i ? "x" : "y").tap{i = !i}

(i = !i) ? "y" : "x"

但如果结果是 XY 情况(我没有在这里写“XY 问题”,因为 OP 没有问任何问题),那么这可能更优雅:

letter = ["x", "y"].cycle
letter.next #=> "x"
letter.next #=> "y"
letter.next #=> "x"
letter.next #=> "y"
...

关于ruby - 多个结果?样式 if 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26562300/

相关文章:

Ruby koan - 关于数组 - test_accessing_array_elements array[5,0]

当 gem 在 bundle exec 之外运行时,Ruby 未初始化常量错误

ruby - 如何使用 ramaz 框架访问 PUT 数据?

ruby-on-rails - 如何在Rails应用程序中汇总不同的货币?

ruby - 匹配与上一组匹配的相同数量的字符

ruby - 如何在 ruby​​ 代码中放置断言

ruby - 如何在 parslet 中定义固定宽度约束

ruby-on-rails - STI 在继承类型中发生变化。

ruby - 在 ruby​​ 中比较 YAML 文件而不加载

ruby-on-rails - 启用 Rack::Deflater 时 ETag 发生变化