[#30408] Ruby 1.8.6 preview2 has been released — "Akinori MUSHA" <knu@...>

 Ruby 1.8.6 preview2 をリリースしました。

20 messages 2007/02/24
[#30414] fail to autoload at $SAFE==4 (Re: Ruby 1.8.6 preview2 has been released) — Hidetoshi NAGAI <nagai@...> 2007/02/25

永井@知能.九工大です.

[#30418] Re: fail to autoload at $SAFE==4 (Re: Ruby 1.8.6 preview2 has been released) — Nobuyoshi Nakada <nobu@...> 2007/02/25

なかだです。

[ruby-dev:30349] Re: class local instance variable

From: SASADA Koichi <ko1@...>
Date: 2007-02-15 05:14:26 UTC
List: ruby-dev #30349
 ささだです。

Yukihiro Matsumoto wrote:
> | クラスローカルインスタンス変数の対案です。
> |
> | @(v) なんてのはキモイですかねぇ。とりあえず、今まで出てきたとは思えな
> |い変数表記だと思います。
> |
> | で、$(v) でスレッドローカル変数(Thread#[:v]と同じ?)。
> 
> 対案が出るのはすばらしいことだと思いますが、@(v)でひとつの変
> 数と言うのはあまりにも美しくない。ソフトウェア工学の観点から
> はソフトウェア変更の影響を限定的にするためできるだけスコープ
> の小さい変数の利用を奨励したいわけですが、それが@(v)ではむし
> ろ「使うな」と言ってるようなものでしょう。

 私の感覚だと、今まで変数名の一部として利用可能だった "_" が、特殊な記
号として認識されることのほうが、ちょっとどうなんだろう、と感じました
("@_" でひとつ、だからこれにはあたらない、ということかもしれません
が)。感じで喋ってもしょうがないか。@(v) だと、なんとなく限定的な感じが
して良いかな、と思って先の投稿になりました。

 ちなみに、延長線上でブロックローカル変数の prefix を _(つまり、_i は
強制的にブロックローカル)ってのはどうなんでしょうね。":=" operator を設
けるよりは好みかもしれない :)


 この話、たとえば Singleton モジュール内で利用するインスタンス変数は
@singleton__mutex__ のようにしました(あと、delegator も)。これは、本質
的には今回の @_v で解決したかった問題(無関係なところからはアクセスして
ほしくない、という要求)な気がするんですが、特異クラスとかその辺の関係
で、うまいこと解決出来ていませんでした。実は、解決策はもっと別にあるん
じゃないか(現状だと naming convention か)、と思うんですが、気のせいか
なぁ。Singleton が特殊なだけかもしれませんが。はてさて。


 もっと賢い保守派(笑)の論客希望。RHGなどで直接話を聞く限り、この仕様
を歓迎している意見って聞いたことが無いから、もっと色々意見が出るような気
がします。

-- 
// SASADA Koichi at atdot dot net


In This Thread