Кавычки
Некоторые языки программирования допускают два вида кавычек для оформления строк: одинарные и двойные. Это особенно удобно, когда в строке уже содержатся кавычки. Чтобы избежать экранирования обратным слешем, достаточно инвертировать крайние кавычки.
Например:
message1 = "Object 'foo' does not exist."
message2 = 'Object "foo" does not exist.'
гораздо удобней, чем
message3 = "Object \"foo\" does not exist."
Возникает холивар, какие кавычки использовать по умолчанию?
Правильный ответ – двойные.
Объяснение этому простое: если двойные кавычки работают почти во всех языках, то одинарные – только в некоторых. Согласно Сишному синтаксису, одинарными кавычками обозначается символ (Char), а не строка. Навскидку назову Си, Плюсы, Джаву, Кложу.
Это не такие заурядные языки, чтобы их игнорировать. При копировании строк, например, XPath- или CSS-селекторов, начинается ад с исправлением кавычек. Выражение
'.//div[@id="foo"]'
без проблем сработает в Джаваскрипте и Питоне, но не в Джаве или Кложе. Поэтому правильней записать его так:
".//div[@id='foo']"
Логично же предположить, что твои селекторы или разметку могут задействовать в другом языке. Поэтому делайте сразу правильно.
Запомните – двойные.
Нашли ошибку? Выделите мышкой и нажмите Ctrl/⌘+Enter
Олег Комков, 24th Mar 2017, link
Странное предложение. Если мы пишем, скажем, на питоне то причем тут, скажем, сишечка? А в php и bash в строке двойных кавычках выполняется интерпретация переменных, а в одинарных нет. Но причем тут питон?
tankist, 4th Apr 2017, link , parent
Согласен. В PHP и JS использую только одинарные кавычки. Даже в легаси-коде мне стат. анализатор предлагает поменять двойные на одинарные.
Ivan Grishaev, 4th Apr 2017, link , parent
Забыл дописать, что сказанное не относится к языкам, где кавычки меняют поведение строк. В PHP и баше двойные кавычки интерполируют переменные.