문제

LUA에서는 l- 값이없는 = 연산자를 사용하는 인쇄 (r-value)와 동등한 것으로 보이며, LUA 독립형 통역사에서 실행되는 몇 가지 예는 다음과 같습니다.

> = a
nil
> a = 8
> = a
8
> = 'hello'
hello
> = print
function: 003657C8

등등...

내 질문은 = 연산자에 대한이 용도에 대한 자세한 설명을 어디서 찾을 수 있습니까? 어떻게 작동합니까? 특수 기본 L- 값을 암시하는 것입니까? 내 문제의 근본은 Google에 정보를 찾기 위해 무엇을 입력 해야하는지 전혀 알 수 없다는 것입니다 :-)

편집하다:

답변 주셔서 감사합니다. 당신은 통역사의 특징입니다. 어리석은 질문, 나는 어떤 이유가 내가 명백한 것을 완전히 간과했는지 모르기 때문입니다. 모닝 커피 전에 게시를 피해야합니다.

while ((status = loadline(L)) != -1) {
  if (status == 0) status = docall(L, 0, 0);
  report(L, status);
  if (status == 0 && lua_gettop(L) > 0) {  /* any result to print? */
    lua_getglobal(L, "print");
    lua_insert(L, 1);
    if (lua_pcall(L, lua_gettop(L)-1, 0, 0) != 0)
      l_message(progname, lua_pushfstring(L,
                           "error calling " LUA_QL("print") " (%s)",
                           lua_tostring(L, -1)));
  }
}

edit2:

실제로 완료 되려면 스택에서 값을 누르는 것에 대한 전체 트릭은 "푸시 라인"기능입니다.

if (firstline && b[0] == '=')  /* first line starts with `=' ? */
  lua_pushfstring(L, "return %s", b+1);  /* change it to `return' */
도움이 되었습니까?

해결책

인용 남자 페이지:

인터랙티브 모드에서 ... 라인이 '='로 시작하면 LUA는 나머지 라인에 모든 표현식의 값을 표시합니다. 표현은 쉼표로 분리되어야합니다.

다른 팁

나는 그것이 독립형 통역사의 특징이라고 생각합니다. 나는 Lua를 편집 한 것에 대해 그 일을 할 수 없다.

나는 그것을 기능이라고 부르지 않을 것입니다 - 통역사는 성명서의 결과를 반환합니다. 그의 일이 아니에요?

할당은 무언가를 반환하는 표현이 아닙니다 Lua 그것에있는 것처럼 C.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top