我正在开发一个项目,其中有几个我不熟悉的模式实例。我不知道该怎么称呼它所以我找不到任何文件。以下概念是什么?
if !@two = [nil, 2].sample
puts 'there was an error'
else
puts @two
end
由于
答案 0 :(得分:2)
它基本上依赖于Ruby的 falsy 对象:nil
和false
。
除了nil
和false
之外的所有内容在Ruby中都被称为 truthy 。
因此,在示例中,如果它是 truthy (2),则打印@two
的值,否则(nil
)打印错误消息。
我不认为这个“概念”有一个名字。
答案 1 :(得分:1)
这里没什么特别的,它相当于:
@two = [nil, 2].sample
if !@two
puts 'there was an error'
else
puts @two
end
@two = [nil, 2].sample
会返回[nil, 2]
中的随机元素,即nil
或2
,并将其分配给实例变量@two
。
条件应该是不言自明的。
答案 2 :(得分:1)
在条件中使用赋值表达式的值的做法本身并没有 name ,但是在括号中包含赋值的做法称为{{3如果您正在编写这样的代码,那么您应该采用这种方法。