lua 예제

이 예제에서는 두 문자열모두 상수 문자열이기 때문에 스크립트를 실행할 때 코드에 입력한 값이 변경되지 않으므로 두 값을 모두 한 번 따옴표 집합 안에 넣을 수 있습니다. Lua는 스택에서 가장 간단한 C 데이터 형식(정수, 부동 등)을 푸시하고 팝하는 함수와 스택을 통해 테이블을 조작하는 함수를 제공합니다. Lua 스택은 기존 스택과 다소 다릅니다. 예를 들어 스택을 직접 인덱싱할 수 있습니다. 음수 인덱스는 스택 상단의 오프셋을 나타냅니다. 예를 들어 -1은 맨 위(가장 최근에 푸시된 값)이고 양수 인덱스는 아래쪽(가장 오래된 값)의 오프셋을 나타냅니다. C 함수와 Lua 함수 간의 마샬링 데이터도 스택을 사용하여 수행됩니다. Lua 함수를 호출하려면 인수가 스택에 푸시된 다음 lua_call을 사용하여 실제 함수를 호출합니다. Lua에서 직접 호출할 C 함수를 작성할 때 인수는 스택에서 읽습니다.

확장 가능한 의미체계는 Lua의 주요 기능이며, 메타가능 개념을 통해 Lua의 테이블을 강력한 방식으로 사용자 지정할 수 있습니다. 다음 예제에서는 “무한” 테이블을 보여 줍니다. 어떤 n의 경우, fibs[n]는 동적 프로그래밍 및 메모를 사용하여 n-th 피보나치 번호를 제공합니다. 참고로 줄 바호를 문자열에 넣으려면 큰 따옴표 안에 n을 작성하여 작성할 수 있습니다. 너무 작성하는 조금 낯선 다른 문자에 대한 유사한 표현이 있다, 그들은 일반적으로 백슬래시로 시작합니다. 새 줄을 의미하지 않고 “n”을 출력하는 방법을 궁금해하는 경우 “n”을 작성할 수 있습니다. 이 기능의 예는 우리가 `인쇄`와 같은 동작을 원하지만 io.write를 사용하는 경우입니다: 한 가지 주요 예는 스크립트가 센서에서 사용자 램 레지스터로 데이터를 저장하고 LJLogM에 의해 기록된 가속도계 및 나침반 모듈(LSM303) 예제입니다. Lua Scripts의 일반적인 응용 프로그램 중 하나는 작업을 실행하고 상태 변수를 로깅 프로그램에 내보내는 것입니다. 이러한 스크립트는 USER_RAM 레지스터를 사용하여 Lua 스크립트의 데이터를 T 시리즈 장치에 액세스하는 다른 프로그램으로 전달할 수 있습니다.