2014-12-11 2 views

답변

9

기본 라이브러리의 table 섹션에있는 insert 함수를 찾고 있습니다. # 연산자는리스트의 길이를 계산하기 때문에

foo = {} 
table.insert(foo, "bar") 
table.insert(foo, "baz") 
+0

Ah 그래서 : foo = {}; table.insert (foo, "bar"); table.insert (foo, "baz") – drewish

+1

젠장, 내 대답을 타이핑하는 동안'insert' 함수를 사용하여 대답했다. *큰 마음은 다 비슷 하네*. :-) – cybermonkey

+0

정확합니다. 세미콜론도 필요 없지만 원하는 경우 em을 사용할 수 있습니다. – rsethc

15
foo = {} 
foo[#foo+1]="bar" 
foo[#foo+1]="baz" 

이 작동합니다. 빈 목록 등 길이가 0을 가지고 당신이 루아 5.3+를 사용하는 경우, 당신은 거의 정확하게 당신이 원하는 무엇을 할 수

:

foo = {} 
setmetatable(foo, { __shl = function (t,v) t[#t+1]=v end }) 
_= foo << "bar" 
_= foo << "baz" 

표현 루아에서 진술하지 않으며 그들이해야 어떻게 든 사용됩니다.

table.insert(a,"b") 

이것은 당신이 때문에 메모리 및 시간과 같은 귀중한 자원을 절약 전체 테이블을 반복 할 필요가 저장합니다

+0

당신의 방법이 작동하는 이유를 확장하십시오. – cybermonkey

+0

나는 그것이 보이는 방식으로 사랑에 빠진 것이 아니라 그것이 효과적이라는 것을 알고 기쁘게 생각합니다. – drewish

+2

'table.insert'보다 약간 빠릅니다. – Tim

1

개인적으로 table.insert 기능의 사용을 만들 것입니다.