From: Daisuke Yamazaki Date: 2007-01-26T23:06:04+09:00 Subject: [ruby-list:43141] Re: Array#[]とArray#at こんにちは.山崎です. 解決しました.自己フォローです. On Fri, 26 Jan 2007 21:55:55 +0900 Daisuke Yamazaki wrote: > こんにちは山崎です. > > ピッケル本にArray#atはArray#[]に比べて引数の処理の分 > 少しだけ高速とあるので[]をatに書き直しているのですが, > 下記のようなコンパイルエラーが出ました. > > % irb > irb(main):001:0> [0,1,2].each_with_index{|v,idx| [1,2,3][idx] = [4,5,6][v] } > => [0, 1, 2] > irb(main):002:0> [0,1,2].each_with_index{|v,idx| [1,2,3].at(idx) = [4,5,6][v] } > SyntaxError: compile error > (irb):2: syntax error, unexpected '=', expecting '}' > IRB.conf[:POST_PROC].call; IRB.conf[:PRE_PROC].call; [0,1,2].each_with_index{|v,idx| [1,2,3].at(idx) = [4,5,6][v] } > ^ > from (irb):2 > irb(main):003:0> > > 演算子の優先度のあたりで私がなにか勘違いしてる気もするのですが, > 上記は望む挙動でしょうか? []とatは基本同じだが[]=とat=は違うという指摘を受けました. 右辺値においては[]はatと同じだが,左辺値に於いては=があるから必ずしも 置換できないということがわかりました。 お騒がせしました. -- プログラマ集団 スケールアウト Daisuke Yamazaki Blog:最速配信研究会 http://d.hatena.ne.jp/yamaz/