From: Masao Mutoh Date: 2002-02-04T22:02:17+09:00 Subject: [ruby-list:33747] Re: 文字列の式展開について むとうです。 On Mon, 4 Feb 2002 21:48:08 +0900 Take_tk wrote: > たけ(tk)です。 > > [ruby-list:33745] Re: 文字列の式展開について にて > Masao Mutoh さん 曰く: > 》さらに言えば、#のエスケープ無しで使えたらもっとうれしいです。 > 》 > 》 print(GetText._("The value is #{num}\n")) > > こんな感じ(↓)のことをしたいわけですね。 > > module GetText > @hash = Hash.new > @hash['The value is #{$num}\n'] = '値は#{$num}です。\n' > > def GetText._(str) > eval('"'+@hash[str]+'"') > end > end > > ###################### > > $num = 1 > print(GetText._('The value is #{$num}\n')) # 値は1です。 > > −− > >  「'」でくくれば式展開はしない。 > >  式展開をした後ではハッシュのキーにマッチしなくなる。 > >  ライブラリ側で式展開すると、呼び出し側のスコープと異なるために、グロー > バル変数を使わざるをえなくなる。 > >  という問題に整理されそうです。 まったくおっしゃるとおりです。 うまく整理できずにすみません。 >  * GetText を実現するには format を使うしかないと思う。 そこをなんとか....と思ったのですが、やっぱりそうなんでしょうね...。 ありがとうございました。 -- .:% Masao Mutoh