соглашение о кодировании ruby ​​для одинарных или двойных кавычек ваших строк - PullRequest
8 голосов
/ 26 января 2011

Я хорошо огляделся, но не смог найти соглашение о том, как использовать кавычки для строк. Я знаю разницу между ними, но везде я вижу хороший код с двойными кавычками, где достаточно синглов. Поэтому я не могу распознать любой шаблон. Я спрашиваю об этом, потому что я хотел бы начать вносить вклад в открытый исходный код, и я хотел бы получить хорошую привычку с самого начала. Я скорее использую одинарные кавычки, насколько это возможно, чтобы укрепить уверенность в себе с разницей между ними.

Ответы [ 2 ]

13 голосов
/ 26 января 2011

То, что вы, вероятно, уже знаете:

  • Одиночные кавычки просто хороши для простых строк.
  • Если вам нужно что-то оценить внутри строки, вам понадобятся двойные кавычки.

Там нет существенного различия в производительности .

Использование двойных кавычек полезно, поэтому вы можете использовать апострофы, не беспокоясь о том, что они могут быть экранированы внутри строки, что делаетстрока выглядит «красивее» в коде.Подумайте "Don't do that" против 'Don\'t do that'

Существует мысль, согласно которой вам никогда не следует бежать в строках .Если вам нужны одинарные и двойные кавычки внутри вашей строки, вам лучше использовать heredoc или гибкие кавычки.В конце я бы дал этому руководству то, что вам нужно использовать при кодировании, если вычисление кода ruby ​​внутри строки не является проблемой.

7 голосов
/ 26 января 2011

Я не думаю, что существует сильное соглашение во всем сообществе.Из того, что я видел, кажется, что существует тенденция к игнорированию одинарных кавычек и всегда к использованию двойных кавычек.В некоторых кругах это является даже соглашением, но локализованным, а не единым для всего сообщества.

Лично, когда у меня есть несколько разных способов выразить одно и то же, я склонениспользовать эти разные способы для передачи различной семантики.(Например, я использую фигурные скобки против do / end в блоках, чтобы различать блоки, которые используются для их побочных эффектов, и блоки, которые используются для их возвращаемого значения.)

Итак, яИспользуйте двойные кавычки только тогда, когда я на самом деле хочу использовать интерполяцию или экранирование строк, в противном случае я использую одинарные кавычки.Таким образом, когда я вижу строку, я сразу могу сказать, что нет никакого забавного дела, и внутри него нет скрытого кода.

Хотя я прагматичен.Я очень предпочитаю "It's a string!" над 'It\'s a string!' или %q[It's a string!].

...