目次

ニュース

日記カテゴリ

書庫

一つの値に対して、nilか空白かを確認する方法について悩んでます。


1.ふつう
if value.nil? || value.empty?
  hogehoge
end


2.モジュールとかで定義
if nil_or_empty?(value)
  hogehoge
end


3.巷でよく使われてるらしい
if value.to_s.empty?
  hogehoge
end


4.組み込みクラスをいじる
class NilClass
  def nil_or_empty?
    true
  end
end

class String
  def nil_or_empty?
    self.empty?
  end
end

if value.nil_or_empty?
  hogehoge
end

 


1.
まぁ普通なんだけど、変数名を二回も打つのが面倒くさい。


2.
value.nil?,value.empty?って呼べるのに両方確かめたいときに、他人を介して尋ねるのがなんだかね。


3.
nil.to_sの結果が""になるのを利用したやり方
過去のruby-devとかを見てると、nil.to_sは"nil"を返すように変更しようとする議論があったみたい。
とりあえず、現状のままでいこうと落ち着いたみたいだけど。

 

4.
組み込みクラスはあんましいじるのはよくないらしいのでねぇ。
#Railsはいじってるけどね。



他人に利用してもらうようなライブラリを作成している訳でもないから、
4.にしようかと考えたけど、
条件判断に、特定の文字列をも含める必要が出た場合とかに結局きれいにならない気がしてきた。


if value.nil_or_empty? || value == "all"
  hogehoge
end


うーん、やっぱり普通に1.かなぁ。
あぁ、まだまだ先は長い。。。


追記:2007/10/16 23:10
Rails(activesupport)では、nilかemptyかを調べてくれるblank?っていう便利なメソッドが定義されているんですね。
http://dev.rubyonrails.org/browser/trunk/activesupport/lib/active_support/core_ext/blank.rb

ただソースを見ると、stripをしてるので
"    ".blank?
#=>true
になるのをわかった上で使わないといけないですね。

投稿日時 : 2007年10月16日 21:43
Feedback
  • # re: [ruby] nil_or_empty?
    のん
    Posted @ 2007/10/16 22:15
    こんばんわ。
    話し逸れてたらごめんなさい。
    rubyってperlみたいに

    if (nil_or_empty? eq ""){print "nullです\n";}

    って出来ないんでしょうか??
  • # re: [ruby] nil_or_empty?
    のん
    Posted @ 2007/10/16 22:20
    うーん、まったく関係ないですね><
    ごめんなさい。
  • # re: [ruby] nil_or_empty?
    かずき
    Posted @ 2007/10/16 22:25
    あ~確かになやましいですよね~
    個人的には s.to_s.empty?かなぁ…
  • # re: [ruby] nil_or_empty?
    ゆき
    Posted @ 2007/10/16 22:29
    のんさん

    >if (nil_or_empty? eq ""){print "nullです\n";}
    puts "nilです。" if value.nil_or_empty?

    perlの構文はよくわからないけど、こーいうことですか?

  • # re: [ruby] nil_or_empty?
    ゆき
    Posted @ 2007/10/16 22:37
    かずきさん

    真実は常に一つとはいかないですからねぇ。
    視点を変えれば答えが変わる。。
  • # re: [ruby] nil_or_empty?
    ゆき
    Posted @ 2007/10/16 22:59
    今気づいたけど、
    Rails(activesupport)には
    value.blank?ってのでnilかemptyか調べれるんだ。

    明日、ソースを修正しよ。
タイトル  
名前  
Url
コメント   

Blog 利用状況