Разница между "и" внутри Lua

У меня есть общий вопрос.

Есть ли разница с использованием одиночных и двойных кавычек в Lua?

Пример:

require('test.lua')
require("test.lua")

Когда я запрограммировал в PAWN, язык, похожий на C, метки одиночной кавычки, мог использоваться для символов, но не для строк текста, вам приходилось использовать двойные кавычки для них.

И если нет никакой разницы, какой из них рекомендуется использовать?

На этот вопрос, скорее всего, уже был дан ответ, однако мне не удалось найти тему, на которую уже ответил.

Спасибо.

Ответ 1

Неа. Никакой разницы, кроме того, что вы можете заключить другое в те, которые вы используете.

-- No difference between these
myStr = "Hi!!"
myStr = 'Hi!!'
myStr = [[Hi!!]] -- The 'weird' way to make a string literal IMO...

-- Double quotes enclosed in single quotes    
myStr = 'My friend said: "Hi!!"'

-- Single quotes enclosed in double quotes
myStr = "My friend said: 'Hi!!'"

-- Single and double quotes enclosed in double brackets
myStr = [[My friend said: "What up?"]]

Смотрите: Строки в Lua для получения дополнительной информации.

Ответ 2

Вы можете легко узнать о строках Lua, выполнив поиск в Интернете для "строк lua".

Вот один результат: http://www.lua.org/pil/2.4.html

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

В качестве предпочтения я обычно использовал двойные кавычки, потому что Lua использует escape-коды C-стиля. Многие языки script (например, Perl) и командные оболочки делают различие между строками с одним и двумя кавычками, и было бы неплохо быть немного совместимыми с этими квазистандартными практиками.

Я имею в виду, что когда я вижу строку с одним кавычком, я должен действительно думать о том, какой язык я читаю, и включают ли escape-коды в эту строку. С строками с двойными кавычками мне не нужно об этом думать, потому что, как правило, любой язык, который заменяет escape-коды стиля C в строке, будет делать это в строке с двумя кавычками.

Ответ 3

Нет никакой разницы между этими двумя в Lua, поэтому вы можете использовать то, что вам нравится. Я имею тенденцию дифференцировать их семантически:

  • Я использую "double quotes" для видимых пользователем строк и текста, в основном независимо от того, что появляется на выходе или в файлах
  • Я использую 'single quotes' для необязательных строк для передачи методам и обычно в коде, например io.stdout:setvbuf('no')