[#29374] nil.to_s — Shugo Maeda <shugo@...>

前田です。

59 messages 2006/09/01
[#29375] Re: nil.to_s — "U.Nakamura" <usa@...> 2006/09/01

こんにちは、なかむら(う)です。

[#29380] Re: nil.to_s — Yukihiro Matsumoto <matz@...> 2006/09/01

まつもと ゆきひろです

[#29387] Re: nil.to_s — Shugo Maeda <shugo@...> 2006/09/01

前田です。

[#29390] Re: nil.to_s — Yukihiro Matsumoto <matz@...> 2006/09/01

まつもと ゆきひろです

[#29398] Re: nil.to_s — "NARUSE, Yui" <naruse@...> 2006/09/01

成瀬です。

[#29400] Re: nil.to_s — Yukihiro Matsumoto <matz@...> 2006/09/01

まつもと ゆきひろです

[#29491] symbol and string — Tanaka Akira <akr@...>

open-uri で :proxy=>nil という指定を行うと、以下のようにエラーになります。

33 messages 2006/09/05
[#29499] Re: symbol and string — Yukihiro Matsumoto <matz@...> 2006/09/05

まつもと ゆきひろです

[#29500] Re: symbol and string — Tanaka Akira <akr@...> 2006/09/05

In article <1157470154.047826.13379.nullmailer@x31.priv.netlab.jp>,

[#29503] Re: symbol and string — Yukihiro Matsumoto <matz@...> 2006/09/06

まつもと ゆきひろです

[#29504] Re: symbol and string — Tanaka Akira <akr@...> 2006/09/06

In article <1157505538.340126.8472.nullmailer@x31.priv.netlab.jp>,

[#29507] Re: symbol and string — Yukihiro Matsumoto <matz@...> 2006/09/06

まつもと ゆきひろです

[#29512] Re: symbol and string — keiju@... (石塚圭樹) 2006/09/06

けいじゅ@いしつかです.

[#29529] Re: symbol and string — SASADA Koichi <ko1@...> 2006/09/08

 ささだです。

[#29530] Re: symbol and string — Yukihiro Matsumoto <matz@...> 2006/09/08

まつもと ゆきひろです

[ruby-dev:29535] Re: symbol and string

From: SASADA Koichi <ko1@...>
Date: 2006-09-08 13:48:22 UTC
List: ruby-dev #29535
 参考文献捜索中のささだです.

Yukihiro Matsumoto wrote:
> | String のメソッドが使えることは、多分悪いことは無いと思いますが、
> |Symbol と String は「別物」と思っています。
> |
> | :foo == "foo" #=> false なので、Hash で同じキーになるのも嫌な感じで
> |す。はい。
> 
> 今までと違う以上「イヤな感じ」を持つ人がいるのは理解できます。
> が、理由のほうに興味がありますね。こう不便だとか、こういう理
> 屈でそうあるべきでないとか。
> 
> akrさんは実際に動かなくなった例を示してくださいましたが、そ
> れなりに(納得して?)対応してくださったようですし。

 とりあえず感覚的に「ありえねー」と思うので,それじゃ理由になんないです
よねぇ.

 Lisp なんかでは,この辺ってどうなんでしょう.eq*? な関数でシンボルが同
じ値を返すことはあるんでしょうか.


> | あと、
> |  :abc.sub(/a/, 'A') #=> :Abc
> |なのに、
> |  :abc.succ #=> "abd"
> |なのは、なんででしょう。統一するべきじゃないかと思います。
> 
> あ、:abc.sub(/a/, 'A')は文字列を返すべきですね。シンボルはGC 
> の対象にならないので、安易に生成するとすぐにシンボルテーブル
> が脹れ上がる危険があるので、シンボルに対する文字列操作では文
> 字列を作るようにしています。

 実は,Symbol に統一するのがいいんじゃないかと思っておりました.このコ
ンテキストでは Symbol が返ってくる事をなんとなく期待しませんか? String
系のメソッドは,:sym.to_s.foo の短縮形と覚えるべきでしょうか.でも,foo
が String 系のメソッドだったっけ,と覚えるのが大変そうです.


 もし,これらの理由が「Symbol は GC しないから」ということなら,Symbol
を GC するように検討してみるのはどうでしょうか(薮蛇かも).

 今回の変更で,SPECIAL_CONST_P(sym) == 0 になったので,なんとななるん
じゃないのかなー,と,なんとなく思っているんですが,甘いでしょうか.mark
するところがちょっと増えるだけかな,とか思ってるんですが.うーん,Symbol
にしないで ID だけ使っているものもあるので,やっぱり難しいか? 
rb_intern で作ったオブジェクトと,Symbol オブジェクトとして作ったオブ
ジェクトを分ける(前者には消さないフラグを着けておくとか)なんてどうか
な,とか思いました.とりとめもないですが.

-- 
// SASADA Koichi at atdot dot net


In This Thread