lua的table資料結構的實現

2021-06-06 23:57:22 字數 376 閱讀 4291

lua的乙個很大的優勢是體積小,可以很方便的嵌入到其他的系統中,所以,它只設計了一種資料結構table供我們使用,但是由於其table實現的巧妙性,所以我們可以很方便的擴充套件出其他的資料結構,如陣列,佇列,字典等等。

在lua中乙個table分成陣列段和hash段倆部分,從lua5.1的原碼中可以很容易的看出來,數字作為key的一般是放在陣列段的,string和當數字過於離散的時候,放在hash段,通過這種方式,使得當把table當做陣列使用的時候,效率可以和c的陣列一樣高。

在原始碼中,table的資料結構為:

typedef struct table {

commonheader;    // 6 byte

lu_byte flags;    /* 1<

lua的資料結構

lua的資料結構 table是lua中唯一的資料結構,其他語言所提供的其他資料結構比如 arrays records lists queues sets等,lua都是通過table來實現。陣列 a new array for i 1,1000 do a i 0 end 下標可以從任意數值開始 比如 ...

Lua資料結構

1.簡介 lua語言只有一種基本資料結構,那就是table,所有其他資料結構如陣列啦,類啦,都可以由table實現.2.table的下標 例e05.lua arrays mydata mydata 0 foo mydata 1 42 hash tables mydata bar baz iterat...

Lua資料結構。

方法一 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 f...