字符串 (Strings)

优质
小牛编辑
136浏览
2023-12-01
  • 尽量使用字符串插值,而不是字符串拼接

    # 错误
    email_with_name = user.name + ' <' + user.email + '>'
    
    # 正确
    email_with_name = "#{user.name} <#{user.email}>"

    另外,记住 Ruby 1.9 风格的字符串插值。比如说你要构造出缓存的 key 名:

    CACHE_KEY = '_store'
    
    cache.write(@user.id + CACHE_KEY)

    那么建议用字符串插值而不是字符串拼接:

    CACHE_KEY = '%d_store'
    
    cache.write(CACHE_KEY % @user.id)
  • 在需要构建大数据块时,避免使用 String#+
    而是用 String#<<. 它可以原位拼接字符串而且它总是快于 String#+, 这种用加号的语法会创建一堆新的字符串对象.

    # 正确而且快
    html = ''
    html << '<h1>Page title</h1>'
    
    paragraphs.each do |paragraph|
      html << "<p>#{paragraph}</p>"
    end
  • 对于多行字符串, 在行末使用 \ ,而不是 + 或者 <<

    # 错误
    "Some string is really long and " +
      "spans multiple lines."
    
    "Some string is really long and " <<
      "spans multiple lines."
    
    # 正确
    "Some string is really long and " \
      "spans multiple lines."