문제
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
.
제휴하지 않습니다 StackOverflow