[ruby-list:50182] クラス変数の定義について
From:
YOKOYAMA Takehiro <tac@...>
Date:
2015-07-01 00:41:48 UTC
List:
ruby-list #50182
rb_define_class_variable() という、名前の通りクラス変数を定義する 函数があります (variable.c)。 ところが、実装コードを見ると、定義しようとする変数が定義済みでなければ NameErrorが発生するという、函数名に反した処理になっています。 さらによく見ると、rb_cv_set() (クラス変数の値設定) と実装コードが まったく同じです。 ruby本体の範囲内ではこの函数が使われていないので問題が顕在化 しなかったのかな、と思ったのですが、調べてみると、ruby-1.6.1以降ずっと、 NameErrorが発生するようになっていることが分かりました。 ここまで昔にさかのぼるとなると、逆に自分が何か勘違いをしているのでは ないかと心配になってきたのですが、いかがなものでしょうか。 -- tac@amris.co.jp 横山岳浩