書き方 - 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?
どのオブジェクトでも使用でき、オブジェクトが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 something
かif something
、 unless 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
を返します。