2014-11-07 1 views
1

Итак, я начал изучать Lua (5.1), и я увидел эту вещь, которая называется буквальными строками. И я понятия не имею, что они делают. Руководство говорит \ а колокол, но когда я типLiteral Strings [Lua 5.1]

print('hello\athere') 

IDE печатает странный квадрат с «бел», написанных на нем. Итак, если кто-то может помочь мне и объяснить каждому из них [Литературные строки]. это было бы очень полезно.

p.s. i use Sublime Text 3

ответ

2

Литерал - это не более чем значение внутри кода, например .: 'some text'.

'\a' что-то другое. Специальный «char», который используется для вывода звука (использовал несколько часов назад).

3

Только ASCII между 0x20 и 0x7E являются printable characters. Как выводятся другие символы, включая '\a' и '\b', зависит от реализации.

'\a', ASCII 7 для BEL, предназначен для предупреждения. При выводе '\a' типичный терминал выдавал звуковое или видимое предупреждение. Ваша IDE решила показать другой результат, отличный от предупреждения. Это нормально, так как это зависит от реализации.

2

Такие последовательности называются «escape-последовательностями» и встречаются на разных языках. Они используются для кодирования непечатаемых символов, таких как символы новой строки в строках с буквами (hardcoded).

Lua поддерживает следующие управляющие последовательности:

  • \a: Bell
  • \b: Backspace
  • \f: Форма кормить
  • \n: Newline
  • \r: возврат каретки
  • \t: Tab
  • \v: вкладка Вертикальная
  • \\: Backslash
  • \": Двойная кавычка
  • \': Одинарная кавычка
  • \nnn: восьмеричное значение (nnn 3 восьмеричных цифр)
  • \xNN: Hex значение (Lua5.2/LuaJIT, NN - это две шестнадцатиричные цифры)