Znalazłem się wielokrotnie szuka jasnego zdefiniowania różnic nil?, blank?oraz empty?w Ruby on Rails. Oto najbliższy, jaki przyszedłem:
blank?obiekty są fałszywe, puste lub zawierają spacje. Na przykład""," ",nil,[], i{}są puste.nil?obiekty są instancjami NilClass.empty?obiekty są specyficzne dla klasy, a definicja różni się w zależności od klasy. Łańcuch jest pusty, jeśli nie ma znaków, a tablica jest pusta, jeśli nie zawiera żadnych elementów.
Czy brakuje czegoś lub dokładniejszego porównania?
:nil?jest określona na ::Kerneli nadpisane na ::NilClass, podczas gdy :empty?jest realizowany oddzielnie na wielu zajęciach (natywnie na ::String, ::Array, ::Hash, i nie natywnie w innych klasach, takich jak ::Setod stdlib oraz ::ActiveRecord::Relationz szyn). :nil?Jest więc dostępny we wszystkich podklasach, ::Objecta także we wszystkich klasach, które ::Kernelsame w sobie obejmują, gdzie :empty?należy je zaimplementować lub uwzględnić w swoich klasach.
nilkoncepcję, zacznij tutaj .
[1] pry(main)> [].blank? => true



present?. A to dlatego, żeblank?zwraca wartość true dla pustej tablicy.