[#46441] Hpricot#search の使い方 — "T.Soejima" <clev@...2.so-net.ne.jp>
そえじまです。
7 messages
2009/10/08
[#46450] String#bytesizeの対応について — "T.Soejima" <clev@...2.so-net.ne.jp>
そえじま@勉強中です。
5 messages
2009/10/14
[#46455] 京都女子大学の公開講座でまつもとさんの講演 — "Hideo Konami" <konami@...>
京都女子大学の小波です。
4 messages
2009/10/15
[#46460] ¥n の改行コマンドが効かない — askar <askar75@...>
初めまして、アスカルと申します。
9 messages
2009/10/18
[#46469] encodingに関する問題? — askar <askar75@...>
お世話になっています。アスカルです。
8 messages
2009/10/18
[#46484] "<<" の使い方 — "T.Soejima" <clev@...2.so-net.ne.jp>
そえじま@勉強中 です。
8 messages
2009/10/27
[ruby-list:46493] Re: "<<" の使い方
From:
Shigehiro Yoshinaga <yoshige@...4.so-net.ne.jp>
Date:
2009-10-27 14:44:42 UTC
List:
ruby-list #46493
> NARUSE様のご指摘を元に、()で括ってやったら動いてくれました。
>
> @ary << (data || data)
> ^^^^^^^^^^
これはただの
@ary << data
と同じですね。
ですから、data == nil の場合にも、@ary に nil が追加されることになります。
これって意図通りの動作ですか?
そえじまさんの意図は、
「data != nil の場合、@ary に data を追加する。data == nil の場合はなにもしない」
のように思います。これが正しいとすると、意図通りのコードを素直に書くと、
if not data.nil?
@ary << data
end
となります。1行にまとめるなら、
@ary << data unless data.nil?
です。
もし、@ary == false になる可能性がないのならば (多くの場合この仮定は妥当)、
すでに NARUSE さんが示したように
@ary << data if data
が簡潔でいいと思います。
Ruby の場合、簡潔にするのに論理演算子を無理に使う必要はありません。
どうしても論理演算子を使いたいのならば、
data && @ary << data
となりますが、文字数は同じですし、分かりにくいだけのように思います。
--
吉永滋博 Shigehiro YOSHINAGA