metatable

    3

    1답변

    는 : local my_table = { name = "my table" } local my_table_mt = {} function my_table_mt.__tostring(tbl) return "%s<%s>":format(tbl.name or "?", rawtostring(tbl)) end 이 가능한 같은가요? rawtostring

    1

    1답변

    어떤 객체의 메타 테이블 이름을 조회하고 싶습니다. 내가 어떤 메타 테이블은 다음과 같은 등록했다고 생각해 Object obj; // some C object luaL_newmetatable(lua, "my_metatable"); // it's empty lua_pushlightuserdata(lua, &obj); luaL_setmetatable(

    3

    1답변

    나는 루아에 userdata로 전달하는 객체를 C++ 프로그램에 가지고 있으며,이 사용자 데이터에 대한 메타 테이블을 오버라이드하여 __newindex 및 __index를 통해 객체의 인덱스에 할당하고, C를 호출하여 C++ 객체에 영향을주는 할당을 변환하거나 C++ 요소를 루아 값 (다른 사용자 데이터 또는 bool, number, string과 같은 기

    2

    1답변

    요소 추가시 크기를 자동으로 추적하는 메타 테이블을 사용하여 사용자 지정 테이블을 만들었습니다. 그것은 매우 잘 작동하고 # 연산자 또는 getn 함수에 대한 필요성을 제거합니다. 그러나 문제가 있습니다. table.insert을 호출하면 함수는 __index 또는 __newindex을 호출하지 않습니다. 따라서, 내 테이블은 요소가 이런 식으로 제거 될

    1

    1답변

    를 통해 '네임 스페이스를 사용하여'나는 파일 foo.lua이있는 경우 : bar.lua에 내가 foo.add() 모든 시간을 입력하여 방해하고 foo.lua의 코드를 많이 사용하고 작성하는 것을 선호 local foo = {} foo.add = function(a, b) return a+b end foo.sub = function(a, b) retur

    2

    1답변

    내가 가지고이 사람의 문제 : 대신 weren 히 내 다른 방법의 내 유저 데이터의 메타 테이블의 __index을 설정할 때, 그것은 항상 게터라는 것을 특징으로 Lua userdata array access and methods , 메타 이벤트를 선언했다. 위의 링크에 대한 해결책은 루아이며, 나는 비효율적 인 C 구현을 시도했지만 관계없이 새로운 메소드

    1

    1답변

    루아에서 메타 테이블을 사용하지 않고 표를 인쇄 할 수 있습니까? 루아에서 로베르토의 책 프로그램에서 , 그는 "기능 print는 항상 출력 형식을 tostring를 호출"언급한다. 그것은 메타 테이블없이 할 수 없습니다 > a = {} > a.tostring = function() return "Lua is cool" end > print(a) ta

    2

    1답변

    나는 Lua API를 사용하여 사용자 데이터로 래핑 된 내 자신의 C++ 객체에 대한 메타 이벤트를 무시합니다. 그러나 일부 메타 이벤트는 사용자 데이터 또는 사용자 데이터로 변환 할 수있는 일반 값일 수있는 여러 인수를 사용할 수 있습니다. 첫 번째로 두 개의 사용자 데이터를 함께 추가하면 __add가 호출되는 이러한 메타 이벤트에 대해 한 번만 호출되는

    1

    1답변

    local A = {{16}, {4,10}, {4,4,6}, {nil,2,-2,4}} -- nil local n = #A local G = {} local mt = {} mt.__index = function(self, i) -- when it goes throw for-loop it brakes wh

    2

    1답변

    표준 이진 연산자 ==,>, <, -, +, * 등으로 구현 된 루아 코드가 있습니다. 나는 허수와 같은 루아 객체를 가진 몇몇 기능을 추가하고 싶다. (특별히 허수는 아니지만, 마음 속의 대답은 여전히 ​​내가 바라는 것이다.) 나는이 연산자 중 하나의 각 인스턴스를 상수 인 숫자의 경우를 고려하는 mult (x, y)와 같은 함수로 바꾸지 않고도 코드