Lua 學習筆記(四) —— 函數(一)

今天,進入函數的學習,這是我的筆記,同時也願意分享給大家。

一.函數參數
1.函數的所有參數必須放在一堆圓括號中,除了一種情況
一個函數只有一個參數,並且此參數是一個字面字符或者table構造式,圓括號可有可無。
例如:print "hello world"  <==> print("hello world")


2.若實參多於形參,捨棄多餘實參;若實參不足,多餘形參初始化爲nil

二.函數返回值
1.函數允許返回多個返回值。
1.1 return 
return 返回多個返回值時,只需要在return 後列出所有的返回值
例如:return m,n


2.函數調用獲取返回值
2.1只有當一個函數調用是以下表達式中的最後一個元素(或者僅有一個元素)時,才獲得它的所有返回值。
4種表達式:多重賦值、函數調用時傳入的實參列表、table的構造式和return語句。

2.2一個函數調用不是以上4種表達式的最後一個元素,那麼將只產生一個值,且爲第一個值。


2.3迫使函數只返回一個結果
將一個函數調用放入一對圓括號中。
例如: function f()
       return "a","b"
   end

   print((f())) --> a


三.變長參數
1.   ... 
1.1作爲參數 --> 表示該函數可接受不同數量的實參。
例如:
function add(...)
local s = 0
for i,v in ipairs{...} do
s = s+ v
end
return s
end


1.2作爲表達式 
例如:local a,b = ...


2.具有變長參數的函數同樣也可以擁有固定參數,但固定參數必須放在變長參數之前。

四.具名實參
實參是通過它在參數表中的位置與形參匹配起來的,特殊情況:具名實參。(通過名稱來指定實參)
將所有實參組織到一個table中,並將這個tabke作爲唯一的實參傳給函數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章