如何在Ruby中实现这一目标?可以在不重复变量的情况下完成吗?使用Javascript:
b = a || 7
Run Code Online (Sandbox Code Playgroud)
此分配a,如果a不0和7其他方式
一个特定情况是将date.wday转换为7(如果它返回0(星期日)).
Ruby中只有两个假值:nil和false.所以,如果你真的想要这种方法
a = b == 0 ? 7 : b
Run Code Online (Sandbox Code Playgroud)
是一个看似合理的解决方案,因为0无法评估为false.
但是,对您的需求更好的选择是cwday,而不是wday.然后你不再需要进行这种比较了,因为它根据你的需要返回1星期一,2星期二,最后7星期日.
date = Date.new(2016,19,6) # => Jun 19 2016, Sunday
date.cwday # => 7
Run Code Online (Sandbox Code Playgroud)
只是出于好奇:
class Object
def javascript_or?(other)
(is_a?(FalseClass) || nil? || '' == self || 0 == self) ? nil : self
end
end
Run Code Online (Sandbox Code Playgroud)
和:
a = b.javascript_or?(7)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
197 次 |
| 最近记录: |