このサイトを参考にしながら、railsに搭載されている、blank?メソッドがどういったコードからできているのかを確認していました。
その中で、railsのactivesupport > lib > active_support > core_ext > object > blank.rbの中に、
# An object is blank if it's false, empty, or a whitespace string. # For example, +false+, '', ' ', +nil+, [], and {} are all blank. # # This simplifies # # !address || address.empty? # # to # # address.blank? # # @return [true, false] def blank? respond_to?(:empty?) ? !!empty? : !self end
というコードがあり、respond_to?(:empty?)がfalseの時の条件を!self(オブジェクトの否定?という表現であっていますか?)
にすることでfalseが返るようにしているらしいのですが、(!self はObjectクラスのインスタンスに対して行っているので、基本的にfalseが返り値となります、との記載があった)なぜ、単純に
def blank? respond_to?(:empty?) ? !!empty? : false end
あるいは
def blank? if respond_to?(:empty?) !!empty? end end
というような形にしないのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/08 06:02
2018/09/08 06:06
2018/09/08 09:47