다음은 C에서 Lua 함수를 호출하는 예입니다: 1993년, 유일한 경쟁자는 응용 프로그램에 포함되도록 명시적으로 설계된 Tcl이었습니다. 그러나 Tcl은 익숙하지 않은 구문을 가지고 있었고 데이터 설명에 대한 좋은 지원을 제공하지 못했으며 유닉스 플랫폼에서만 실행되었습니다. 우리는 그들의 비우호적 인 구문 때문에 LISP 또는 계획고려하지 않았다. 파이썬은 아직 초기 단계에 있었습니다. 다음 Tecgraf에서 통치 무료, 할 – 그것 – 자신 분위기에서, 우리가 우리 자신의 스크립팅 언어를 개발하기 위해 노력해야하는 것은 매우 자연스러웠다 … 언어의 많은 잠재적 인 사용자가 전문 프로그래머가 아니기 때문에 언어는 비밀스러운 구문과 의미 체계를 피해야합니다. Tecgraf의 클라이언트는 매우 다양한 컴퓨터 플랫폼 컬렉션을 가지고 있었기 때문에 새 언어의 구현은 매우 이식성이 있어야 합니다. 마지막으로 다른 Tecgraf 제품도 스크립팅 언어를 포함해야 할 것으로 예상했기 때문에 새 언어는 SOL의 예제를 따르고 C API가 있는 라이브러리로 제공되어야 합니다. 그래서 그냥 우리가 화면에 텍스트를 출력하는 `인쇄`라는 함수를 가지고 있고 문자열의 매개 변수를했다고 가정 해 봅시다. 이 예제에서는 함수의 작업인 해당 문자열을 출력한다고 가정해 보겠습니다.

일부 데이터를 출력하기 위해 함수를 호출하려는 경우 이 예제에서 팩터 함수가 함수로 구현됩니다: CGILua 또는 IUPLua와 같은 응용 프로그램에 포함된 Lua를 사용하는 경우 에서 프로그램을 실행하는 방법을 알아보려면 응용 프로그램 설명서(또는 “로컬 전문가”)를 참조해야 할 수 있습니다. 그럼에도 불구하고 루아는 여전히 같은 언어입니다. 여기서 볼 수 있는 대부분의 것들은 Lua를 사용하는 방법에 관계없이 유효합니다. 먼저 독립 실행형 인터프리터(즉, lua 실행 파일을 사용)를 사용하여 첫 번째 예제 및 실험을 실행하는 것이 좋습니다. 참고로 줄 바호를 문자열에 넣으려면 큰 따옴표 안에 n을 작성하여 작성할 수 있습니다. 너무 작성하는 조금 낯선 다른 문자에 대한 유사한 표현이 있다, 그들은 일반적으로 백슬래시로 시작합니다. 새 줄을 의미하지 않고 “n”을 출력하는 방법을 궁금해하는 경우 “n”을 작성할 수 있습니다. 이 기능의 예로는 `print`와 같은 동작을 원하지만 io.write를 사용하면 Kipling없이 Lua 스크립트를 보려면 아래에 나열된 예제 스크립트로 구성된 하위 페이지를 참조하십시오. 아래에 나열된 예제의 대다수(전부는 아님)도 Kipling의 최신 릴리스에서 사용할 수 있습니다. Kipling 리포지토리에 직접 추가 스크립트를 제공하십시오(지침은 문의). 함수는 일반적으로 특정 유형의 데이터를 취하기 위해 만들어집니다( 예: 문장을 출력하는 함수는 문자열 데이터 형식이라고 하는 것을 매개 변수로 사용할 가능성이 높습니다.) 문자열 데이터 유형은 단순히 여러 문자 / 문자, 예를 들어 간단한 문장으로 구성되며, 이중 또는 단일 따옴표로 데이터를 둘러싸는 루아에 표시됩니다. 예를 들어 “이것은 문자열입니다.”.

언어가 우리를 위해 노력의 대부분을 하기 때문에 우리는 다른 언어로 Lua의 데이터 형식에 대해 많이 걱정할 필요가 없습니다,하지만 항상 당신이 염두에 두어야 뭔가. Lua C API는 스택 기반입니다. Lua는 스택에서 가장 간단한 C 데이터 형식(정수, 부동 등)을 푸시하고 팝하는 함수와 스택을 통해 테이블을 조작하는 함수를 제공합니다. Lua 스택은 기존 스택과 다소 다릅니다. 예를 들어 스택을 직접 인덱싱할 수 있습니다. 음수 인덱스는 스택 상단의 오프셋을 나타냅니다. 예를 들어 -1은 맨 위(가장 최근에 푸시된 값)이고 양수 인덱스는 아래쪽(가장 오래된 값)의 오프셋을 나타냅니다. C 함수와 Lua 함수 간의 마샬링 데이터도 스택을 사용하여 수행됩니다. Lua 함수를 호출하려면 인수가 스택에 푸시된 다음 lua_call을 사용하여 실제 함수를 호출합니다.

Categories: Sin categoría