> 方法一:
local
function
dotest()
array = {}
for i = 1,4
do array[i] = {}
for j = 1,4
do array[i][j] = 12
end end
for i = 1,4
dofor j = 1,4
do print(array[i][j])
endend
end> 方法二:
local
function
dotest()
local array = {}
for i = 1,4
dofor j = 1,4
do-- 這裡是一種計算偏差,這其實相當於乙個一維連續陣列了。
array[(i - 1) * 4 + j] = 12
end end
for k = 1,4
dofor v = 1,4
do print(array[(k - 1) * 4 + v])
endend
end
list = nil
for i = 1,100 do
-- 這裡next = list不太理解,它是怎麼找到下乙個的list的吶?
list =
endlocal l = list
while l do
print(l.value)
l = l.next
end-- 其實我還是詳細理解了一下,但我理解出來的結果是這樣的。
-- 上面的一句其實好像先自己弄了乙個不知道哪來的相同結構表,
-- 然後再把這個表給上乙個list,所以我發現輸出結果是倒序的。
temp = {}
-- 這裡的list 實際上就是剛宣告的那個nil,把nil賦值給新的表的next
-- 但是如果是第二次新增的話,這個list就是指第乙個新增的list了,依此類推。
-- 其實這裡是最不理解的了,它是怎麼知道我現在是第幾個表的哇?
-- 大約過了5分鐘。。。
-- 我現在明白了,因為list是乙個全域性變數,再我最後一句賦值後,下次再進來的時候,
-- 明顯他的next就是上次賦值後的那個list了,然後依此類推,並且它們是包括與被包括的。
-- next的值是另乙個table,然後table裡還有table。。。
temp.next = list
temp.data = var
list = temp
-- pushfirst越多,first值越小,依此類推。
local list = {}
function list.new()
return
endfunction list.pushfirst(list,value)
local
first = list.first - 1
list.first = first
list[first] = value
endfunction list.pushlast(list,value)
local
last = list.last + 1
list.last = last
list[last] = value
endfunction list.popfirst(list)
local
first = list.first
iffirst > list.last
then
error("list is empty") end
local value = list[first]
list[first] = nil
list.first = first + 1
return value
endfunction list.poplast(list)
local
last = list.last
iflist.first > list.last
then
error("list is empty") end
local value = list[last]
list[last] = nil
list.last = last - 1
return value
endlist = list.new()
list.pushfirst(list,1990)
list.pushlast(list,1991)
print(list.popfirst(list))
print(list.poplast(list))
Lua資料結構
1.簡介 lua語言只有一種基本資料結構,那就是table,所有其他資料結構如陣列啦,類啦,都可以由table實現.2.table的下標 例e05.lua arrays mydata mydata 0 foo mydata 1 42 hash tables mydata bar baz iterat...
lua資料結構
1.說明 k v資料結構,k非nil的任意型別 2.賦值local tab 初始化 key 預設 local tab 訪問 tab 1 key 數字 local tab 訪問 tab 60 key 字串 local tab 訪問 tab.aa 1.方法一 local tab 1.增table.ins...
Lua資料結構
1.簡介 lua語言只有一種基本資料結構,那就是table,所有其他資料結構如陣列啦,類啦,都可以由table實現.2.table的下標 例e05.lua arrays mydata mydata 0 foo mydata 1 42 hash tables mydata bar baz iterat...