【发布时间】:2022-01-27 10:05:49
【问题描述】:
今天晚上我正在玩 FizzBuzz 编程练习,尝试不同的方法来编写解决方案。
我写的一行是:
nf = !((ff = i % 3 == 0) || (bf = i % 5 == 0))
nf 是“无标志”
ff 是“嘶嘶旗”
bf 是“嗡嗡声标志”
现在我知道这是一种可怕的风格——我对原始问题有更好的解决方案——但是这个也不起作用,因为 Ruby 对 || 的懒惰评估表达式意味着如果 i 是 3 的倍数,则 ff 设置为 true,bf 保留为 nil(尽管定义它是因为它发生在评估之前)。
我一直在寻找但没有成功的方法是让 Ruby 评估 || 的双方。 (或其他运算符),以便所有三个标志都获得正确的值。
有没有办法在 Ruby 中做到这一点?
【问题讨论】: