두 번째 인수는 개체 파일에 저장할 함수 테이블 이며 둘 이상의 함수를 포함할 수 있습니다. saveobj의 구현은 여전히 매우 원시적입니다. 예를 들어, Lua 함수를 호출 하는 테라 함수가 올바르게 저장 되지 않습니다. 이 인터페이스는 시간이 지남에 따라 더 강력 해질 것입니다. 문 a:add (b)는 일반적으로 복잡 한 것입니다. 메서드. 추가 (a, b). a는 복잡 하지만 add 함수는 and 복합을 필요로 합니다. 필요한 경우, 테라는 하나의 암시적 주소 연산자를 메서드 호출의 첫 번째 인수에 삽입 합니다. 이 경우 a: add (b)는 복잡 한 것입니다. 메서드를 추가 합니다.
우리는 또한 «안녕하세요, 세계» 직접 테라 코드에서 이렇게 처럼 인쇄할 수 있습니다: 루아의 디자인과 마찬가지로, 테라는 독립형 실행으로 사용할 수 있습니다/읽기-eval-인쇄-루프 (repl) 또한 라이브러리로 C 프로그램에 포함 된. 이 디자인을 사용 하면 기존 프로젝트와 쉽게 통합할 수 있습니다. 또한, 테라 함수를 로컬로 범위가 지정 된 Lua 변수로 선언할 수 있습니다. local 키워드를 사용할 수 있습니다: 테라의 제어 흐름은 for 루프의 동작을 제외 하 고는 Lua와 거의 동일 하다. 테라의 형식 시스템은 C의 형식 시스템과 유사 하 게, Lua 언어와 상호 운용 하기 위해 몇 가지 차이점이 있습니다. 루아 함수 정의 처럼, 테라 함수 defintions는 루아 테이블에 직접 삽입할 수 있습니다. 당신은 왜 테라 매크로와 이스케이프를 모두 포함 궁금 수 있습니다. 그들은 모두 당신이 다른 식으로 테라 코드를 스플라이스 수 있으며, 경우에 당신은 동일한 목적을 달성 하기 위해 매크로나 탈출 중 하나를 사용할 수 있습니다.
매크로는 함수 호출과 비슷하게 보이지만 일반적으로 최종 사용자가 코드를 생성 하 여 기능을 구현 한다는 것이 중요 하지 않은 경우에 사용 됩니다. 예를 들어, myobj: mymethod (arg)에서 mymethod는 매크로로 구현할 수 있습니다. 또한 함수를 정의할 때 이스케이프를 계산 하는 동안 (즉, 서라운드 Lua 코드가 실행 될 때) 함수가 실제로 호출 될 때만 발생 하는 함수를 컴파일할 때 매크로가 실행 됩니다. 즉, 매크로에서 myquote: gettype () 메서드 호출을 통해 식의 유형에 액세스할 수 있습니다.
Πρόσφατα σχόλια