百分比字面量 (Percent Literals)

  • 统一用圆括号,不要用其他括号,
    因为它的行为更接近于一个函数调用。[link]

    1. # 错误
    2. %w[date locale]
    3. %w{date locale}
    4. %w|date locale|
    5. # 正确
    6. %w(date locale)
  • 随意用 %w [link]

    1. STATES = %w(draft open closed)
  • 在一个单行字符串里需要 插值(interpolation) 和内嵌双引号时使用 %()
    对于多行字符串,建议用 heredocs 语法。[link]

    1. # 错误 - 不需要字符串插值
    2. %(<div class="text">Some text</div>)
    3. # 直接 '<div class="text">Some text</div>' 就行了
    4. # 错误 - 无双引号
    5. %(This is # {quality} style)
    6. # 直接 "This is # {quality} style" 就行了
    7. # 错误 - 多行了
    8. %(<div>\n<span class="big"># {exclamation}</span>\n</div>)
    9. # 应该用 heredoc.
    10. # 正确 - 需要字符串插值, 有双引号, 单行.
    11. %(<tr><td class="name"># {name}</td>)
  • 仅在需要匹配 多于一个 ‘/‘符号的时候使用 %r[link]

    1. # 错误
    2. %r(\s+)
    3. # 依然不好
    4. %r(^/(.*)$)
    5. # should be /^\/(.*)$/
    6. # 正确
    7. %r(^/blog/2011/(.*)$)
  • 避免使用 %x ,除非你要调用一个带引号的命令(非常少见的情况)。
    [link]

    1. # 错误
    2. date = %x(date)
    3. # 正确
    4. date = `date`
    5. echo = %x(echo `date`)