こんばんは。三並です。


久々にRubyをバージョンしてみたのですが
今まで使っていたプログラムがエラーを吐いたので
バグなのか仕様変更なのかわからなかったので報告します。

ruby1.4.xでは
Struct.newの際に最後の引数の後に,をつけても問題なかったのですが
1.6.2ではエラーになってしまいました。

以下のように書く癖があったので発見されました。
strct = Struct.new("Info", 
	:top, 
	:top_beginner, 
)


以下が例です。

% ruby -v; ruby -e 'strct = Struct.new("Info", :top, :top_beginner, ); p strct'
ruby 1.4.4 (2000-04-14) [i386-freebsd2.2.8]
Struct::Info


% /usr/local/ruby162/bin/ruby -v; /usr/local/ruby162/bin/ruby -e 'strct = 
Struct.new("Info", :top, :top_beginner, ); p strct'
ruby 1.6.2 (2000-12-25) [i386-freebsd2.2.8]
-e:1: parse error
strct = Struct.new("Info", :top, :top_beginner, ); p strct
                                                 ^


% /usr/local/ruby162/bin/ruby -v; /usr/local/ruby162/bin/ruby -e 'strct = Str
uct.new("Info", :top, :top_beginner); p strct'
ruby 1.6.2 (2000-12-25) [i386-freebsd2.2.8]
Struct::Info


よろしくお願いします。

 ___________________________
〆
|  三並 慶佐  (Keisuke Minami)
|  E-mail:keisuke / rccn.com
|  「do yourself better」
|
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄