From: matz@... (Yukihiro Matsumoto) Date: 1996-02-20T11:35:02+09:00 Subject: [ruby-list:176] Re: var まつもと ゆきひろ@トヨタケーラムです. In message "[ruby-list:173] var" on 96/02/19, P nakawtse 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 見て頂くと分かるように`#'で指定してはじめて文字列の中の変数 を展開します. まつもと ゆきひろ /:|)