我一直在阅读 Thomas 的《Programming Ruby 1.9》,并发现了替代的分隔单引号和双引号方法(%q / %Q
)。我也从其他 Ruby 语言参考资料中了解了它们。
%q/I'm acting like a single-quoted string/
%Q|"I'm acting like a double-quoted string" --Anonymous|
我使用 Ruby 的时间并不长,但我已经never在生产代码中遇到这种引用方法。
除了显而易见的能力避免内部转义引号使用反斜杠,这种通过常规单引号或双引号引用的方法的常见用例是什么?它们通常用于单行或多行字符串吗?如果在多行字符串中使用,它们是否比 HEREDOC 字符串更受青睐?是否存在特定的 Ruby 习惯用法?
当您已经“用完”引用方法时,它们对于使用 JavaScript 转义 HTML 非常有用:
link = %q[<a href="javascript:method('call')">link</a>]
我还发现它们在处理多行 SQL 语句时非常有用:
execute(%Q[
INSERT INTO table_a (column_a)
SELECT value
FROM table_b
WHERE key='value'
])
这样做的优点是您不需要注意查询中使用的引用类型。它可以与单、双或两者一起使用。它们也比 HEREDOC 风格的方法要简单得多。
Ruby 提供了其他类似的便捷方法,例如%r
可以构造正则表达式。当尝试编写一个处理类似的东西时,这可以避免斜线炎http://
否则就必须逃避。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)