Pregunta

Puede alguien explicar esto a mí? He descubierto a través de este tutorial que esto se conoce como una tabla. Viniendo de un C / C ++ fondo, ¿Puede alguien explicar cómo funciona este (Estoy tratando de entender algo de código Lua existente)? ??

config = {
  devices = {
    C56    = "/dev/ttyS2",
    ELTRA  = "/dev/ttyS3",
--  MICORE = "/dev/ttyS4",
    HID    = "/dev/ttyS1",

    KEYCARD = {
  --  [6] = { tty="/dev/ttyS1", speed=9600 },
      [7] = { tty="/dev/ttyS4", speed=9600 },
    },

  },
}

Es una tabla de configuración, que consiste en una tabla de dispositivos, pero luego hay una mesa KEYCARD? Lo que se llama C56 y ELTRA en Lua? ¿Son campos?

¿Fue útil?

Solución

Una tabla en Lua es sólo un mapa sin tipo, como objetos JavaScript o diccionarios de Python. La tabla asocia un valor (como "dispositivos" o 6) con otro valor (como "/ dev / ttyS2"). El valor podría ser otra tabla. Las tablas se utilizan para crear objetos, mapas y matrices.

En el ejemplo, el config referencias a variables de una mesa. Esa tabla tiene un elemento, "dispositivos", cuyo valor es otra tabla. Esa tabla tiene 5 elementos. Cuatro de esos elementos ( "C56", "MICORE" "ELTRA", y "HID") tienen cadenas como sus valores. El quinto elemento ( "tarjeta") tiene una mesa como su valor. Eso tabla tiene dos elementos (6, 7) cuyos valores son otras tablas (cada uno de dos elementos).

Otros consejos

Tiene una tabla de configuración de dos subtablas dentro de ella, y dispositivos de tarjeta de acceso, que es una subtabla de dispositivos. Ha sido un tiempo desde que utiliza Lua, pero para acceder, por ejemplo ELTRA, debería escribir Config.devices.ELTRA y para acceder a la tarjeta de acceso 7 se escribe Config.devices.KEYCARD [7] Para llegar a la velocidad de la tarjeta de acceso, se puede hacer velocidad = Config.devices.KEYCARD [7] .speed

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top