[ruby-list:176] Re: var

From: matz@... (Yukihiro Matsumoto)
Date: 1996-02-20 02:35:02 UTC
List: ruby-list #176
まつもと ゆきひろ@トヨタケーラムです.

In message "[ruby-list:173] var"
    on 96/02/19, P nakawtse <nakawtse@syrinx.dq.isl.ntt.jp> writes:
|  中渡です.

|え? varはローカル変数か引数無しのメソッド呼び出しですが,ど
|ちらかは代入されているかどうかでわかるので,巨大なメソッドで
|なければ,覚えている必要は無いと思いますが….
|-------
|
| 単にメッセージそのものということがあります.
|    print "var: var1";
|  perlなら
|    print "$var: var1";
|    print "var: $var1";
|  でどこが置換されるかわかりますが,var ,var1という変数が
| あるかどうか(編集ミス/間違えて使っていたりする)によって結果が
| 違うけれど,バグの種になりやすいのではないかと..

ああ,文字列の中の"var"は*いつも*メッセージそのものです.
perlと違って明示的に指定しないと変数展開しません.つまり

 ruby> $var, $var1 = 1, 2
 [1, 2]
 ruby> print "var: var1\n"
 var: var1
 ruby> print "$var: var1\n"
 $var: var1
 ruby> print "var: $var1\n"
 var: $var1
 ruby> print "#{$var}: var1\n"
 1: var1
 ruby> print "var: #$var1\n"
 var: 2

見て頂くと分かるように`#'で指定してはじめて文字列の中の変数
を展開します.
                                まつもと ゆきひろ /:|)

In This Thread

Prev Next