2016-11-18 8 views
1

Это кажется законным Lua синтаксис:Lua синтаксис таблицы

example = { ["dummy"] = "foobar"}

Почему вы использовали бы выше, а не просто:

example = { dummy = "foobar"}

Они появляются функционально то же самое ..

+0

Удивительно, что я не могу написать, например, 't = {in = 0, out = 1, err = 2}' –

+0

Удивительно, что вы * не можете * написать? @egorskriptunoff это выглядит для меня – warspyking

+1

@warspyking 'in' является ключевым словом, поэтому его нельзя использовать в качестве имени поля таблицы без скобок. –

ответ

1

Поскольку имена полей не обязательно должны быть идентификаторами: они могут быть любой строкой, включая строки, имеющие пробелы, для ins стояние.

Второй оператор действителен синтаксисом Lua и очень удобен для имен полей, которые являются идентификаторами.

Табличные ключи не обязательно должны быть строками: они могут фактически быть любым значением (кроме нуля), а синтаксис [expr]=expr для записей таблицы позволяет использовать значения произвольных выражений в качестве ключей.

+0

Могут ли они быть * любыми * значениями, кроме nil? Я уверен, что есть еще один. – warspyking

+1

кроме nil и nan. –

 Смежные вопросы

  • Нет связанных вопросов^_^