Разница между "и" внутри 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')