function A()
return 1, 2
end
function B(...)
return print(...)
end
-- works good expect 1, 2 actual 1, 2
B(A())
-- works bad expect 1, 2, 3 actual 1, 3
B(A(), 3)
-- works good expect 1, 2, 3 actual 1, 2, 3
local a, b = A()
B(a, b, 3)
개씨발 ...
function A()
return 1, 2
end
function B(...)
return print(...)
end
-- works good expect 1, 2 actual 1, 2
B(A())
-- works bad expect 1, 2, 3 actual 1, 3
B(A(), 3)
-- works good expect 1, 2, 3 actual 1, 2, 3
local a, b = A()
B(a, b, 3)
개씨발 ...
루아 잘 모르지만 혹시 구조분해를 명시적으로 안하면 하나의 값으로 취급하는거 아니냐
A() 는 1, 2 를 리턴함.
B(A())는 파라미터로 A() 를 주니까 1 , 2 둘 다 들어가는거고, B(A(),3) 은 B의 두번째 파라미터로 3을 주기 때문에 A() 의 첫번째 리턴만 들어가는거임.
테이블로 처리하면 됨.