書き方 - Ruby on Railsの空白と空白の空白の簡潔な説明




ruby on rails view (10)

私は何度も何の違いがあるのnil?明確に定義していnil?blank? 、そしてempty? Ruby on Railsで。 ここに私が来た最も近いものがあります:

  • blank? オブジェクトは偽、空、または空白文字列です。 たとえば、 """ "nil[] 、および{}は空白です。

  • nil? オブジェクトはNilClassのインスタンスです。

  • empty? オブジェクトはクラス固有であり、定義はクラスによって異なります。 文字列がない場合は文字列は空であり、アイテムが含まれていない場合は配列は空です。

不足しているものがあるのか​​、それとももっと厳しい比較ができますか?


1つの違いは.nil?.empty? プログラミング言語Rubyによって提供されるメソッドですが、 .blank? Web開発フレームワークRailsによってaddedれたものです。



  • すべてがnil? blank?
  • すべてempty? blank?
  • 何もempty?ではありempty? nil?
  • 何もないnil? empty?

tl; dr - blank?だけを使用しblank?present? あなたが""" "を区別しない限り


.nil? どのオブジェクトでも使用でき、オブジェクトがnilの場合はtrueです。

.empty? 文字列、配列、およびハッシュで使用でき、次の場合にtrueを返します。

  • 文字列の長さ== 0
  • 配列の長さ== 0
  • ハッシュ長== 0

.empty?実行して.empty? 何もない場合は、 NoMethodErrorをスローしNoMethodError

それはどこ.blank? それはRailsによって実装されていて、どんなオブジェクトでも動作し、同様に.empty?ように.empty? 文字列、配列、ハッシュに

nil.blank? == true
false.blank? == true
[].blank? == true
{}.blank? == true
"".blank? == true
5.blank? == false
0.blank? == false

.blank? 空ではないが空白だけを含む文字列についてもtrueを評価します:

"  ".blank? == true
"  ".empty? == false

Railsも .present? 提供して .present? .blank?の否定を.blank?

Array gotcha: blank? 配列のすべての要素が空白の場合でもfalseを返しfalse 。 この場合の空白を判別するには、 all?使用all? blank? 、 例えば:

[ nil, '' ].blank? == false
[ nil, '' ].all? &:blank? == true 

exists? メソッドを使用して、データがデータベースに存在するかどうかをチェックすることができます。 ブール値をtrueまたはfalseいずれかで返します。


nil? すべてのオブジェクトで呼び出すことができる標準のRubyメソッドで、オブジェクトがnil場合はtrueを返しtrue

b = nil
b.nil? # => true

empty? 文字列、配列、ハッシュなどのいくつかのオブジェクトで呼び出すことのできる標準のRubyメソッドであり、これらのオブジェクトに要素が含まれていない場合はtrueを返しtrue

a = []
a.empty? # => true

b = ["2","4"]
b.empty? # => false

empty? nilオブジェクトに対して呼び出すことはできません。

blank? 空のオブジェクトだけでなくnilオブジェクトでもnil Railsメソッドです。


クイックヒント: !obj.blank? == obj.present? !obj.blank? == obj.present?

いくつかの表現では目に便利な/簡単にすることができます


何も忘れany? これは一般的に!empty? 。 Railsでは、通常、文の末尾にif somethingif somethingunless something blank?を使用していunless something if somethingチェックしblank? それはどこでもうまくいくように見えるので、必要に応じて。


私はすべてのケースでこの便利なテーブルを作った:

blank?present? Railsによって提供されています。


誰もが違いが何であるかをよく説明しています。

Ruby On Railsに追加したいのですが、 obj.blank?を使用する方が良いobj.blank? またはobj.present? obj.nil?代わりにobj.nil? またはobj.empty?

obj.blank? すべての型nil''[]{} 、値が利用できない場合はtrueを返し、任意の型のオブジェクトで値が利用可能な場合はfalseを返します。







ruby