目次

ニュース

日記カテゴリ

書庫

一つの値に対して、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か調べれるんだ。

    明日、ソースを修正しよ。
  • # pVZeWIpXrcEBf
    http://crorkz.com/
    Posted @ 2014/08/04 4:31
    4B1oZY Fantastic blog post.Much thanks again. Keep writing.
  • # qQHdTBpeblrWMaKmJtS
    http://crorkz.com/
    Posted @ 2014/08/05 6:07
    Km8fPe Really informative post.Really looking forward to read more. Keep writing.
  • # wPbjXynlrCLJv
    http://www.figarodigital.co.uk/Mobile/oakley1.htm
    Posted @ 2014/09/02 17:58
    I am always looking online for posts that can help me. Thanks!
  • # WtTImBSSWSD
    http://alpenforum.forumsmotion.com/f1-forum
    Posted @ 2014/09/05 20:52
    excellent put up, very informative. I wonder why the other experts of this sector do not notice this. You must proceed your writing. I'm confident, you've a great readers' base already!
  • # QHJhoVQGhHpZNAWte
    http://criminallawyersottawa.com
    Posted @ 2014/09/09 18:00
    Magnificent site. A lot of useful info here. I am sending it to a few friends ans also sharing in delicious. And obviously, thanks for your effort!
  • # kinpUKoruG
    http://distancity.com/
    Posted @ 2014/09/14 20:26
    you will have an incredible weblog right here! would you prefer to make some invite posts on my blog?
  • # UEyDLfnPDd
    http://www.theboatonlinestore.es/index.php?main_pa
    Posted @ 2014/09/15 8:06
    I'd have to verify with you here. Which is not one thing I usually do! I enjoy reading a submit that may make people think. Additionally, thanks for allowing me to remark!
  • # XXMLElsLwUE
    http://naturalbeautylifestyle.info/story.php?id=26
    Posted @ 2014/09/18 17:06
    KwqJsN I value the post.Much thanks again. Awesome.
  • # lKrQTOWMPHUb
    https://www.suba.me/
    Posted @ 2018/12/20 9:29
    fNNDAq Thanks a lot for the article.Really looking forward to read more. Fantastic.
タイトル
名前
Url
コメント 

Blog 利用状況