3
내가 t
테이블, t
를 호출, 같은이기 때문에, 단순한 더미 예제 파일은 documentation에 따르면 긴 단어 `__call`는
t = {}
t.__call = print
t.__call(1)
t(2)
보다 더 많은 설명 생각 내 루아 코드에서 작동하지 않습니다
t(2)
은
t.__call(2)
과 같이
t.__call
전화로 리디렉션되어야합니다.
t.__call
은 문제가 없지만 "구문 설탕"은 효과가 없습니다. 위 코드의 결과는 다음과 같습니다.
1
lua: test.lua:4: attempt to call global 't' (a table value)
stack traceback:
test.lua:4: in main chunk
[C]: in ?
무엇이 누락 되었습니까? t(2)
을 t.__call(2)
으로 변환하지 않는 이유는 무엇입니까?
또는 훨씬 짧습니다 :'t = setmetatable ({}, {__call = print})' – Deduplicator