在Matt的帖子中关于drying up cucumber tests,Aslak suggests以下内容。
当我有很多报价时,我更喜欢这个:
给出%{我在“用户名”}中输入“#{User.first.username}”
调用的%{CONTENT}
构造是什么?有人会介意在某些文档中引用它吗?我不知道怎么去查找它。
还有关于%Q
的内容。这仅相当于%
吗?什么花括号?你能用方括号吗?它们的功能有何不同?
最后,#{<ruby stuff to be evaluated>}
构造被称为什么?在某个地方的文档中是否也提到了这一点?
答案 0 :(得分:13)
“百分比文字”通常是谷歌搜索信息的好方法:
#{}
被称为“字符串插值”。
答案 1 :(得分:11)
其他答案都没有实际回答这个问题。
这是百分号表示法。百分号表示下一个字符是文字分隔符,您可以使用所需的任何(非字母数字)字符。例如:
%{stuff}
%[stuff]
%?stuff?
等。这允许您将双引号,单引号等放入字符串而不转义:
%{foo='bar with embedded "baz"'}
返回文字字符串: foo =&#39;带有嵌入&#34; baz&#34;&#39;
的栏百分号后面可以跟一个字母修饰符来确定字符串的插值方式。例如,%Q[ ]
是插值字符串,%q[ ]
是非插值字符串,%i[ ]
是非插值符号数组等。例如:
%i#potato tuna#
返回符号数组:
[:potato, :tuna]
详细信息如下:Wikibooks
答案 2 :(得分:9)
#{1+1}
被称为String Interpolation。
我和Wikibooks将%
内容称为“%notation”。 Reference here。 %
表示法采用任何分隔符,只要它不是字母数字。它也可以采用修饰符(有点像正则表达式如何选择),其中一个有趣的是,你是否允许#{}
- 样式字符串插值(这也是默认启用)。
%
然后对它做了一些特别的事情,给这个符号一些明显的,如果对初学者有点神秘,简洁。例如,%w{hello world}
返回数组['hello','world']
。 %s{hello}
会返回符号:hello
。