我有这个方法创建一个哈希:
def build_values(data)
{
key1: data.k1,
key2: data.k2,
key3: (@var == true ? data.k3 : nil),
key4: data.k4,
...
}
end
Run Code Online (Sandbox Code Playgroud)
如果的话@var == true,那么就key3有价值data.k2。那挺好的。
如果不是true,则key3没有价值(实际上,它有nil)。key3但理想情况下,我根本不想打印。
我怎么做?像这样的东西是行不通的:
def build_values(data)
{
key1: data.k1,
key2: data.k2,
if @var == true
key3: data.k3
end,
key4: data.k4,
...
}
end
Run Code Online (Sandbox Code Playgroud)
不是最漂亮的解决方案,但**可以使用:
{
key1: data.k1,
key2: data.k2,
**(@var == true ? { key3: data.k3 } : {}),
key4: data.k4,
}
Run Code Online (Sandbox Code Playgroud)
请注意,如果您只关心是否为true ,== true则可以省略。@var