1、lua的特性
2、lua資料型別
lua是動態型別語言,變數不要型別定義,只需要為變數賦值。 值可以儲存在變數中,作為引數傳遞或結果返回。
lua中有8個基本型別分別為:nil、boolean、number、string、userdata、function、thread和table。
其中:lua 把 false 和 nil 看作是"假",其他的都為"真":
3、pairs 和 ipairs區別
**示例:
localtab=
fori,v
inpairs
(tab)do
--輸出
"a",
"b",
"c",
(tab[i
])endfori,
v in
ipairs
(tab)do
--輸出
"a",k=
2時斷開
(tab[i
])end
4、lua元表(metatable)
在 lua table 中我們可以訪問對應的key來得到value值,但是卻無法對兩個 table 進行操作。
因此 lua 提供了元表(metatable),允許我們改變table的行為,每個行為關聯了對應的元方法。
例如,使用元表我們可以定義lua如何計算兩個table的相加操作a+b。
當lua試圖對兩個表進行相加時,先檢查兩者之一是否有元表,之後檢查是否有乙個叫"__add"的字段,若找到,則呼叫對應的值。"__add"等即時字段,其對應的值(往往是乙個函式或是table)就是"元方法"。
有兩個很重要的函式來處理元表:
__index 元方法
這是 metatable 最常用的鍵。
當你通過鍵來訪問 table 的時候,如果這個鍵沒有值,那麼lua就會尋找該table的metatable(假定有metatable)中的__index 鍵。如果__index包含乙個**,lua會在**中查詢相應的鍵。
lua查詢乙個表元素時的規則,其實就是如下3個步驟:
__newindex 元方法
__newindex 元方法用來對錶更新,__index則用來對錶訪問 。
當你給表的乙個缺少的索引賦值,直譯器就會查詢__newindex 元方法:如果存在則呼叫這個函式而不進行賦值操作。
__call 元方法
__call 元方法在 lua 呼叫乙個值時呼叫。
__tostring 元方法
__tostring 元方法用於修改表的輸出行為。
5、閉包
閉包:通過呼叫含有乙個內部函式加上該外部函式持有的外部區域性變數(upvalue)的外部函式(就是工廠)產生的乙個例項函式
閉包組成:外部函式+外部函式建立的upvalue+內部函式(閉包函式)
6、c和lua的互相呼叫
Lua 面試題目
1 lua中八種基礎型別 nil 空 boolean 布林 number 數字 string 字串 userdata 自定義型別 function 函式 thread 執行緒 table 表 2 string.sub 123456 2,2 結果2345 3 lua中 只有 false 和 nil 代...
C 面試題目
1 ispostback正確的是 首次載入頁面的ispostback的值為false 重新整理頁面後的ispostback的值為true 第三個選項忘了 2 頁面傳值的幾種方式 request.querystring session server.transfer 3 什麼是瀏覽器的 無狀態 如何解...
面試題目總結
1.char p和char p的區別。1 char getstring void void main 2 char getstring void void main 為什麼 1 輸出的是亂碼,2 能夠輸出 hello world?hello world 作為靜態字串實際上儲存在文字常量區 參見 棧和...