您好,登錄后才能下訂單哦!
1,使用函數時必須帶圓括號,除非函數只有一個參數,且此參數是字面字符串或者table構造式。
2,lua為面向對象式的調用提供了一種特殊的語法-冒號操作符。o:foo(x)==o.foo(o,x);
3,無論函數使用lua編寫的還是用c編寫的,在調用它時沒有任何區別。
4,lua可以返回多個結果,只需在return后面列出所有的返回值即可。
5,lua調用一個函數的返回值數量以適應不同的調用情況:
函數調用作為一條單獨語句時,lua會丟棄函數的所有返回值。
若將函數作為表達式的一部分來調用,lua只保留函數的第一個返回值。
當一個函數調用是一系列表達式中的最后一個元素(或僅有一個元素)時,才能獲得它的所有返回值
所謂的一系列表達式有4種情況:
function foo2() return "a","b" end
1,多重賦值:x,y =foo2(),20; - - x="a",y=20;
2,實參列表:print(foo2(),1); - - >a 1
3,table 構造式:t={foo2(),4} -- t[1]="a",t[2]=4;
4,return語句:return foo2(); -- 這里不要加圓括號,否則只返回一個值。
6,unpack():接受一個數組作為參數,并從小標1開始返回該數組的所有元素。
7,變長參數: "..." select 來遍歷一個函數的所有變長參數。
8,具名實參:直接受一個參數,實參只有一個table構造式。
9,函數是第一類值,與其他傳統的類型的值有相同的權利。
table.sort(network,function(a,b) return (a.name>b.name) end)
10,closure 閉合函數:
11,”詞法域“,一個函數寫在另一個函數內部,便可以訪問外部函數的局部變量的特征。
12,非全局的函數:
13,正確的尾調用:當一個函數的調用是另一個函數的最后一個動作時,該調用才算是一條尾調用。
只有return <func>(<args>) 這樣的形形式才算是一條尾調用。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。