From: Masatoshi SEKI Date: 2006-09-06T00:46:23+09:00 Subject: [ruby-dev:29501] Re: symbol and string 咳といいます。 On 2006/09/06, at 0:36, Tanaka Akira wrote: > In article <1157470154.047826.13379.nullmailer@x31.priv.netlab.jp>, > Yukihiro Matsumoto writes: > >> |今回の Symbol の扱いの変更に際し、このような問題はどう扱うこ >> |とが想定されていますか? >> >> Structで同様の問題が起きた時(第一引数が文字列であればStruct >> 名、Symbolであればメンバ名としていた)には、Symbolであるかど >> うかを先に判定するという方法で回避しました。 > > 残念ながら、その方法では > > open(url, :proxy=>..., "proxy"=>...) > > というように、:proxy の制御と同時に proxy というヘッダを指定 > することができません。これは、open-uri のコードに 2つの要素 > がたどり着かないためです。 > > なんかうまい方法はないですかね? いま1.9が作れなくて試せないのですが、StringのキーとSymbolのキーが 同一視されちゃうってことなんですか? 1.8だとこうなんですが irb(main):001:0> h = Hash.new irb(main):002:0> h['a'] = 'a' irb(main):003:0> h[:a] = :a irb(main):004:0> h => {"a"=>"a", :a=>:a} 1.9だとたとえば次のようになるのでしょうか? => {"a"=>:a} StringとSymbolの継承関係はよくわからないけど、 別のキーして扱われないと困ります。