优先使用 字符串插值 来代替 字符串串联。

  # bad
  email_with_name = user.name + ' <' + user.email + '>'

  # good
  email_with_name = "#{user.name} <#{user.email}>"

  # good
  email_with_name = format('%s <%s>', user.name, user.email)

    Consider padding string interpolation code with space. It more clearly sets the
    code apart from the string.考虑使用空格填充字符串插值。它更明确了除字符串的插值来源。

  "#{ user.last_name }, #{ user.first_name }"

    Consider padding string interpolation code with space. It more clearly sets the
    code apart from the string.
    考虑替字符串插值留白。這使插值在字符串里看起來更清楚。

  "#{ user.last_name }, #{ user.first_name }"

    采用一致的字符串字面量引用风格。这里有在社区里面受欢迎的两种风格,它们都被认为非常好 -
    默认使用单引号(选项 A)以及双引号风格(选项 B)。

        (Option A) 当你不需要字符串插值或者例如 \t, \n, ' 这样的特殊符号的
        时候优先使用单引号引用。

    # bad
    name = "Bozhidar"

    # good
    name = 'Bozhidar'

        (Option B) Prefer double-quotes unless your string literal
        contains " or escape characters you want to suppress.
        除非你的字符串字面量包含 " 或者你需要抑制转义字符(escape characters)
        优先使用双引号引用。

    # bad
    name = 'Bozhidar'

    # good
    name = "Bozhidar"

    第二种风格可以说在 Ruby 社区更受欢迎些。该指南的字符串字面量,无论如何,
    与第一种风格对齐。

    不要使用 "htmlcode">

 # bad
  char = "htmlcode">
 class Person
   attr_reader :first_name, :last_name

   def initialize(first_name, last_name)
    @first_name = first_name
    @last_name = last_name
   end

   # bad - valid, but awkward
   def to_s
    "#@first_name #@last_name"
   end

   # good
   def to_s
    "#{@first_name} #{@last_name}"
   end
  end

  $global = 0
  # bad
  puts "$global = #$global"

  # good
  puts "$global = #{$global}"

    在对象插值的时候不要使用 Object#to_s,它将会被自动调用。

  # bad
  message = "This is the #{result.to_s}."

  # good
  message = "This is the #{result}."

    操作较大的字符串时, 避免使用 String#+ 做为替代使用 String#<<。就地级联字符串块总是比 String#+ 更快,它创建了多个字符串对象。

  # good and also fast
  html = ''
  html << '<h1>Page title</h1>'

  paragraphs.each do |paragraph|
   html << "<p>#{paragraph}</p>"
  end

    When using heredocs for multi-line strings keep in mind the fact
    that they preserve leading whitespace. It's a good practice to
    employ some margin based on which to trim the excessive whitespace.
    heredocs 中的多行文字会保留前缀空白。因此做好如何缩进的规划。这是一个很好的
    做法,采用一定的边幅在此基础上削减过多的空白。

  code = <<-END.gsub(/^\s+\|/, '')
   |def test
   | some_method
   | other_method
   |end
  END
  #=> "def test\n some_method\n other_method\nend\n"


广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。