Ruby插值

Alb*_*dra 10 ruby string

有人可以解释为什么这样做:

%{#$"}
Run Code Online (Sandbox Code Playgroud)

在irb产生以下?

=> "[\"enumerator.so\", \"enc/encdb.so\", \"enc/big5.so\", \"enc/cp949.so\", \"enc/emacs_mule.so\", \"enc/euc_jp.so\", \"enc/euc_kr.so\", \"enc/euc_tw.so\", \"enc/gb2312.so\", \"enc/gb18030.so\", \"enc/gbk.so\", \"enc/iso_8859_1.so\" ... ]
Run Code Online (Sandbox Code Playgroud)

谢谢!

fal*_*tru 25

%{ ... }是一个字符串文字.它类似于"...".

%{a string} == "a string"
# => true
Run Code Online (Sandbox Code Playgroud)

#{expr}在那些字符串文字内部是插值.expr里面的表达式用它的值代替.对于全局变量,您可以省略{}.

"#{1 + 2}"
# => "3"
Run Code Online (Sandbox Code Playgroud)
%{#$"} == $".to_s
# => true
Run Code Online (Sandbox Code Playgroud)

$"预定义变量之一:加载的模块名称数组.