[#41750] cygwinでRDtoolなどがインストールできない — Kouzuma Kunikazu <kuni92@...>
はじめまして、上妻 久仁和 と申します。
9 messages
2006/01/01
[#41751] Re: cygwinでRDtoolなどがインストールできない
— rubikitch <rubikitch@...>
2006/01/01
From: Kouzuma Kunikazu <kuni92@sings.jp>
[#41752] Re: cygwinでRDtoolなどがインストールできない
— nobu@...
2006/01/02
なかだです。
[#41753] [ANN] Subversion 1.3.0 released. — Kouhei Sutou <kou@...>
須藤です.
4 messages
2006/01/02
[#41790] Ruby組み込み時の拡張ライブラリの静的リンク — 湊大典 <minato.daisuke@...>
こんにちわ、湊大典@会津大です。
5 messages
2006/01/19
[#41795] Ruby/SDL Segmentation fault — Kouhei Yanagita <yanagi@...>
こんにちは。柳田です。
4 messages
2006/01/21
[ruby-list:41768] Re: nilの扱い
From:
Kazuhiro Yoshida <moriq@...>
Date:
2006-01-06 10:14:10 UTC
List:
ruby-list #41768
もりきゅうです。
ARAI Shunichi wrote:
> Rubyでプログラムを書いていて、
> もっともよくおこるエラーは、nilに関するものです。
>
> なにかの値が空であることを表すのに、
> nilを使うべきなのか、0や空配列などを使うべきなのか、
> ちょっと悩んでいます。
>
> nilを使うと、不用意に比較したりしたときに例外になって
> しまいます。nilを使わない場合、簡単に
> if object
> としたときにtrueになってしまいますので、いちいち
> オブジェクトにあわせて比較してやらねばなりません。
よくあるのは array, hash, string に empty? を使ったときに nil がくるから
if v.nil? || v.empty?
と書かないといけないのが面倒、というパターンだと思います。
そこで、ここでは Rails (actionsupport) の blank.rb を紹介します。
http://dev.rubyonrails.org/browser/trunk/activesupport/lib/active_support/core_ext/blank.rb
これを使えば
if v.blank?
と書けてうれしい。
ほかのパターンとしては、array, hash の入れ子のアクセスがあると思います。
例えば、入れ子の hash として扱う h があるとき、h[:a] が nil である場合を
考慮して
if h[:a] && h[:a][:b]
と書かないといけないのが面倒です。
これは
h = Hash.new {|hash, key| hash[key] = {} }
このように h を作っておけば key に :a がないとき h[:a] すると自動的に
h[:a] = {} になりますから
if h[:a][:b]
と書けます。
ただし key の存在を検査するときは h.key?(:a) などとする必要があります。