<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                * 盡量使用字符串插值(interpolation),而不是字符串連接(concatenation)。 ~~~ # 差 email_with_name = user.name + ' <' + user.email + '>' # 好 email_with_name = "#{user.name} <#{user.email}>" ~~~ * 對于插值表達式, 括號內不應有留白(padded-spacing)。 ~~~ # 差 "From: #{ user.first_name }, #{ user.last_name }" # 好 "From: #{user.first_name}, #{user.last_name}" ~~~ * 選定一個字符串字面量創建的風格。Ruby 社區認可兩種分割,默認用單引號(風格 A)和默認用雙引號(風格 B) * **(風格 A)**當你不需要插入特殊符號如?`\t`,?`\n`,?`'`, 等等時,盡量使用單引號的字符串。 ~~~ # 差 name = "Bozhidar" # 好 name = 'Bozhidar' ~~~ * **(風格 B)**?用雙引號。除非字符串中含有雙引號,或者含有你希望抑制的逃逸字符。 ~~~ # 差 name = 'Bozhidar' # 好 name = "Bozhidar" ~~~ 有爭議的是,第二種風格在 Ruby 社區里更受歡迎一些。但是本指南中字符串采用第一種風格。 * 不要用?`?x`。從 Ruby 1.9 開始,?`?x`?和?`'x'`?是等價的(只包括一個字符的字符串)。 ~~~ # 差 char = ?c # 好 char = 'c' ~~~ * 別忘了使用?`{}`?來圍繞被插入字符串的實例與全局變量。 ~~~ class Person attr_reader :first_name, :last_name def initialize(first_name, last_name) @first_name = first_name @last_name = last_name end # 差 - 有效,但難看 def to_s "#@first_name #@last_name" end # 好 def to_s "#{@first_name} #{@last_name}" end end $global = 0 # 差 puts "$global = #$global" # 好 puts "$global = #{$global}" ~~~ * 字符串插值不要用?`Object#to_s`?。Ruby 默認會調用該方法。 ~~~ # 差 message = "This is the #{result.to_s}." # 好 message = "This is the #{result}." ~~~ * 當你需要建構龐大的數據塊(chunk)時,避免使用?`String#+`?。 使用?`String#<<`?來替代。`<<`?就地改變字符串實例,因此比?`String#+`?來得快。`String#+`?創造了一堆新的字符串對象。 ~~~ # 好也比較快 html = '' html << '<h1>Page title</h1>' paragraphs.each do |paragraph| html << "<p>#{paragraph}</p>" end ~~~ * 當你可以選擇更快速、更專門的替代方法時,不要使用?`String#gsub`。 ~~~ url = 'http://example.com' str = 'lisp-case-rules' # 差 url.gsub("http://", "https://") str.gsub("-", "_") # 好 url.sub("http://", "https://") str.tr("-", "_") ~~~ * heredocs 中的多行文字會保留前綴空白。因此做好如何縮進的規劃。 ~~~ code = <<-END.gsub(/^\s+\|/, '') |def test | some_method | other_method |end END #=> "def\n some_method\n \nother_method\nend" ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看