8.2 一般非限定输入
在Ruby中,有一些符号的命名是为了用于改变代码或文字格式,并将其转换成字符串、数组、正则表达式和Shell。这是脚本语言中独有的特性,在Perl中这种特性被充分发挥。在Ruby中,一般非限定输入符号的含义如表8.1所示。
表8.1 一般非限定输入符号的含义
|
类 型 |
含 义 |
|
%q |
单引号字符串 |
|
%Q |
双引号字符串 |
|
%w |
Token的数组 |
|
%r |
正则表达式模式 |
|
%x |
Shell命令 |
这些非限定符号后面紧跟任何特殊符号都可以成为类似于{}的范围限定符,这里建议使用{}和//。示例如下。
puts %q{ab bc cd de ef}
puts %q/ab bc cd de ef/
puts %q#ab bc cd de ef#
以上代码执行的结果都是ab bc cd de ef。如果内容中存在该特殊符号,可以使用“\”进行转义,如:
puts %q!ab bc \!cd de ef!
这段程序的输出结果如下所示。
ab bc !cd de ef
一般非限定输入也可以是多行的,下面这种用法就是用了一个{}包含了多行的字符串。
puts %q{puts %q$ab bc cd de ef$
puts %q/ab bc cd de ef/
puts %q#ab bc cd de ef#
puts %q!ab bc \!cd de ef!}
这段程序的输出结果如下所示。
puts %q$ab bc cd de ef$
puts %q/ab bc cd de ef/
puts %q#ab bc cd de ef#
puts %q!ab bc \!cd de ef!







