Ruby 用更干练的方式来写这句话?

Ruby 用更干练的方式来写这句话?,ruby,Ruby,我有以下资料: unless parsed['PREDICATE'].nil? predicate = parsed['PREDICATE'] end 这里的逻辑很清楚。但在我写这篇文章时,我只是想知道是否有同样清晰但更干燥的东西?你可以把它写在一行: predicate = parsed['PREDICATE'] unless parsed['PREDICATE'].nil? 只有一个:如果/,则偏爱修饰符,除非在使用单行正文时使用 或者,假设您正在检查某个键是否存在,然后将该键

我有以下资料:

unless parsed['PREDICATE'].nil?
    predicate = parsed['PREDICATE']
end

这里的逻辑很清楚。但在我写这篇文章时,我只是想知道是否有同样清晰但更干燥的东西?

你可以把它写在一行:

predicate = parsed['PREDICATE']  unless parsed['PREDICATE'].nil?
只有一个:如果/
,则偏爱修饰符
,除非在使用单行正文时使用

或者,假设您正在检查某个键是否存在,然后将该键的值分配给var,那么您可能会考虑:

predicate = parsed['PREDICATE']  if parsed.has_key? 'PREDICATE'

如果它失败了,是predicate=nil?Arup,我错过了你答案的第二部分。我只想补充一条建议,在确定是否有钥匙时,最好使用
has_key?
(又称
key?
)而不是检查值是否为
nil
。我的答案是唯一的死亡原因。我很好。我的理解正确吗?如果
parsed
有一个键
“predicate”
,即使该键的值是
nil
,您想执行
predicate=parsed['predicate']