2017-08-17 105 views
1

它可能是一個有點瑣碎的問題,但始終困擾着我:雙引號中的字符串schema.rb

是否有任何具體原因爲Rails使用雙引號括起來的字符串,而不是單引號的字符串(如rubocop建議)中schema.rb?

+0

因爲單引號字符串實際上並不更快。單引號字符串警察大多是一個有見地的BS。 https://stackoverflow.com/questions/1836467/is-there-a-performance-gain-in-using-single-quotes-vs-double-quotes-in-ruby – max

+0

在同一篇文章中的另一個答案說,因爲它遵循慣例。 https://stackoverflow.com/questions/1836467/is-there-a-performance-gain-in-using-single-quotes-vs-double-quotes-in-ruby#answer-1836838 –

+0

你有沒有看過'放'pancakes'.inspect'? 'String#inspect'使用雙引號'#inspect'是一種超級簡單的方式來處理轉義成Ruby源代碼的字符串中的轉義。 –

回答

0

schema.rb就是使用雙引號的原因是,大多數的格式是由多項預定義的字符串,呼籲#inspect進行,例如:

# schema_dumper.rb:91 
stream.puts " enable_extension #{extension.inspect}" 

而且String#inspect輸出字符串與周圍的雙引號,即:

"foo".inspect 
#=> "\"foo\"" 

也就是說,RuboCop有抓人的錯誤,所以沒有必要對包括由框架生成的文件,這並不意味着可以手動編輯。 (您仍然希望檢查使用Rails生成器創建的應用程序文件。)

+0

有趣。感謝你的回答。 :) – ogirginc