0

重複の可能性:
ネストされた params ハッシュで nil でメソッドを呼び出さないようにする明確な方法はありますか?
ruby の groovy の連鎖属性に同等の null 防止はありますか?

これを書かずに「nil:NilClass の未定義のメソッド `xx'」を回避するのに役立つ構文糖衣は Ruby にありますか?

if !something.nil? && !something.very.nil? && !something.very.long.nil? && !something.very.long.to.nil? then
   if something.very.long.to.write != 0 then
    ...
   end
end

Groovyでこれを行います

if(something?.very?.loong?.to?.write != 0)

Ruby に相当する構文はありますか?

4

2 に答える 2

1

重複した質問ですが、今のところ見つかりません。私のやり方は:

if a = something and a = a.very and a = a.long and a = a.to
  if a = a.write
    ...
  end
end
于 2012-06-27T10:31:58.793 に答える
0
class Object
  def try(*a, &b)
    if a.empty? && block_given?
      yield self
    else
      __send__(*a, &b)
    end
  end
end

class NillClass
  def try(*args)
    nil
  end
end

次に、あなたの場合

if result = something.try(:very).try(:long).try(:to).try(:write)
  if result != 0
  end
end 
于 2012-06-27T10:34:05.060 に答える