[#30220] schedule for Ruby 1.8.6 — "Akinori MUSHA" <knu@...>

 ruby-core を読んでいない人もいると思うので、ここでもアナウンス

20 messages 2007/01/30

[ruby-dev:30159] := operator

From: SASADA Koichi <ko1@...>
Date: 2007-01-23 03:27:24 UTC
List: ruby-dev #30159
 ささだです。

 := ってオペレータって言わないのかな。よくわからないんで、もし違ってい
たらより適切な言い方を教えてください。

 [Ruby] local variables new scoping rule
 http://www.rubyist.net/~matz/20070112.html#p04

を読んだのですが、|foo; bar| 以外に := としてブロックローカルな変数を宣
言する方法を用意する必要性がよくわかりませんでした。

> しかし、ブロック限定のローカル変数を使いたい局面は限定されており、ハフ
マン圧縮的見地からは、より頻繁に使われる通常のローカル変数的使い方のため
に、いちいちブロックの前に戻って宣言的代入が必須と言うのはめんどくさい。

 うーん、そうなんですかねぇ。限定された用途のために、:= という記号が増
えるほうがめんどくさい(覚えるのが)と思います。

 あと、

a = 1
iter{
  a = 2
  a := 3
  a = 4
}
p a

 例えばこの場合って何が返るんでしょう。JavaScript的には1、C++的には2、
大穴は4。

-- 
// SASADA Koichi at atdot dot net


In This Thread

Prev Next