[#40847] ActiveRecordからのSQLiteの使用について — Hiromi Ishii <banzaida@...>
こんばんは。konnです。
5 messages
2005/06/04
[#40854] Ruby without false or nil — SASADA Koichi <ko1@...>
ささだです。
14 messages
2005/06/08
[#40855] Re: Ruby without false or nil
— SAITO Shukaku <shukaku@...>
2005/06/08
斉藤秀格と申します。
[#40868] [RFC] framework of Ruby/Tk + VNC — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
6 messages
2005/06/10
[ruby-list:40857] Re: Ruby without false or nil
From:
URABE Shyouhei <s-urabe@...>
Date:
2005-06-08 11:17:59 UTC
List:
ruby-list #40857
卜部です。 SAITO Shukaku wrote: >"恋するプログラム"からの受け売りですが、例えばString#indexで該当文字列が >見付からなかった時にnilが返るので、部分文字列の有無だけを判定するのにnil >が"偽"だと便利ではあります。 > > String#indexがfalseを返したとしても成り立つ議論です。 >あとはArrayやHashで該当要素がないとnilが戻ると、やはりfalseとして有無の >判定に利用できるとか。 > > falseが戻ってきてもいいと思いませんか。 初期の頃、Hashにおいてnilは「値がない」ことを示すときに出現していたよう ですが、現在ではHashの値としてnilを代入することは意味論上も実装上もハッ シュオブジェクトに実際にnilを登録しているのであり、ハッシュ表の検索に失 敗した場合は別に指定したデフォルトのオブジェクト(または default_procを呼 んだ結果)が返ってくるわけです。現代的なHashにおいて、もはやnilは要素がな いしるしではありません。 ところがこの変化に追従していないやつとかもいるわけで、代表格はENVと PStoreですが、こいつらに値としてnilを持たせようとして env_or_pstore["hoge"] = nil とかやると、なんとキー"hoge"が消えてしまう。これは当初は非常に合理的な仕 様であったと思いますが、現在では驚き最小ではない仕様といえます。 このように、「該当要素がないとnil」という前提はすでに崩壊していて、しか もへんにこの前提を捨て切れていないので、nilがかえるというのがあまり便利 であるとは思えません。 >trueとnilだと違和感があるし、前述のような場合にfalseが返るのも何だか妙な >感じがしますので、現行のfalseとnilは良い仕様だと思っています。 > > 違和感とか、感覚とか、そういう話は結構同意できます。慣れの問題かも。