From: shugo@... (MAEDA Shugo) Date: 1998-11-30T00:56:06+09:00 Subject: [ruby-dev:3698] Re: [ruby-list:11096] Re: MacRuby 前田です。 >>>>> In [ruby-dev:3692] >>>>> "青山" == Wakou Aoyama san wrote: 青山> >> a.push(*[]) 青山> => [] 青山> ということから、こんな事が出来るようになれば良さそうですが。 青山> DATA = open($0).collect{|line| 青山> unless "__END__\n" == line ... FALSE then 青山> *[] 青山> else 青山> line 青山> end 青山> } 青山> *[] でなくても、「無」を返す手段があればいいんですけどね。 本来nilが「無」というか未定義を表すのですが、nil自体を値として 扱いたい時もあるんですよね。 昔はcollectはnilを切り捨てていたような覚えがあります。 ちなみにa.push(*[])とa.push()は等値で、ともに引数0です。 青山> いや、Ruby においては nil がそれであるという事なら、[].push() が [nil] 青山> になるべきなのか... push(nil)なら引数1でその値はnilなのですが、push()は引数0なので [].push()は[nil]になるべきではないと思います。 def foo(*args) p args end foo() #=> [] foo(*[]) #=> [] foo(nil) #=> [nil] というので、理解していただけるでしょうか。 -- 前田 修吾 (mailto:shugo@aianet.ne.jp)