2010-06-29 5 views
2

누군가이 설명을 해줄 수 있습니까? 나는 이것이 이것을 테이블이라고 부르는이 tutorial을 통해 알아 냈습니다. C/C++ 배경에서 누군가가 어떻게 작동하는지 설명 할 수 있습니까? (기존의 루아 코드를 이해하려고합니다)?루아 신규 - 테이블 작업

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 }, 
    }, 

    }, 
} 

구성 테이블이 장치 테이블로 구성되었지만 KEYCARD 테이블이 있습니까? 루아에서 C56과 ELTRA는 무엇입니까? 그들은 들판입니까?

답변

8

루아의 표는 Javascript 객체 또는 Python 사전처럼 형식화되지 않은지도 일뿐입니다. 테이블은 하나의 값 (예 : "devices"또는 6)을 다른 값 ("/ dev/ttyS2"와 같은)과 연관시킵니다. 값은 다른 테이블 일 수 있습니다. 테이블은 개체, 맵 및 배열을 만드는 데 사용됩니다.

예에서 구성 변수는 테이블을 참조합니다. 이 테이블에는 하나의 요소 인 "devices"가 있으며 그 값은 다른 테이블입니다. 그 테이블에는 5 가지 요소가 있습니다. 이러한 요소 중 4 개 ("C56", "ELTRA", "MICORE"및 "HID")는 문자열을 값으로 갖습니다. 다섯 번째 요소 ("KEYCARD")는 값으로 테이블을가집니다. 해당 테이블에는 값이 다른 테이블 (두 요소 각각) 인 두 개의 요소 (6, 7)가 있습니다.

3

config 테이블에는 하위 테이블 인 하위 장치 인 장치와 키 카드가 있습니다. 루아를 사용하기 때문에 오랜 시간이 걸렸지 만 예를 들어 ELTRA에 액세스하려면 Config.devices.ELTRA를 입력하고 7 키 카드에 액세스하려면 Config.devices.KEYCARD [7] 을 입력하십시오. 당신은 할 수있다 speed = Config.devices.KEYCARD [7] .speed

+1

또한 Keycard [6]와 MICORE가 주석 처리되어 있음에 유의하십시오. – Rokujolady

+0

어떤면에서 보면 C 형태의 구조체와 같습니다. –

+1

저는 누군가 기술적으로 정확한 것은 아니기 때문에 저에게 뛰어들 것이라고 확신합니다. 그렇습니다. C++이나 C에서오고 있다면, 그것에 대해 생각하는 좋은 방법입니다. 즉석에서 추가 할 수있는 유형이 잘못된 멤버가있는 구조체입니다. – Rokujolady