私は自分自身が繰り返しの違いの明確な定義を探して見つけnil?、blank?およびempty?Ruby on Railsの中で。これが私が来た最も近いものです:
- blank?オブジェクトはfalse、空、または空白文字列です。たとえば、- ""、- " "、- nil、- []、および- {}空白です。
- nil?オブジェクトはNilClassのインスタンスです。
- empty?オブジェクトはクラス固有であり、定義はクラスごとに異なります。文字がない場合、文字列は空になり、項目が含まれない場合、配列は空になります。
不足しているもの、またはより厳密な比較ができるものはありますか?
:nil?上に定義された::Kernelとのオーバーライドされ::NilClassながら、:empty?多くのクラスに分けて実装されている(ネイティブの::String、::Array、::Hash、および非ネイティブのような他のクラスの::SetSTDLIBからと::ActiveRecord::Relationレールから)。したがって、:nil?は、のすべてのサブクラス、::Objectおよび::Kernelそれ自体が含まれるすべてのクラスで使用でき:empty?ます。これらのクラスは、クラスに具体的に実装または含める必要があります。
                nil概念を理解しようとするなら、ここから始めてください。
                [1] pry(main)> [].blank? => true
                


present?。これはblank?、空の配列に対してtrueを返すためです。