Lua程序設計 具名實參

        Lua中的參數機制是具備「位置性」的,也就是說在調用一個函數時,實參是經過它在參數表中的位置與形參匹配起來。但有時經過名稱來指定實參也是頗有用的。函數

       將全部的實參組織到一個table中,並將這個table做爲惟一的實參傳給函數,使用時能夠經過table查找到須要的值。lua

  細節:當實參只有一個table構造式時,函數調用中的圓括號是無關緊要的。spa

function rename(arg)
return os.rename(arg.old, arg.new)
end

        當一個函數擁有大量的實參,而其中大部分參數時可選的話,則能夠使用這種參數傳遞風格,而這其中大部分可選的部分最好使用具名實參。 code

w = window{x = 0, y = 0, width = 300, height = 200}

      widow函數能夠根據要求檢查一些必填的函數,或者爲某些參數添加默認值。假設「_window」纔是真正用於建立窗口的函數,他要求全部的參數以正確的次序傳入,那麼能夠這樣寫:io

 function window(options)
 -- 檢查必要的參數
  if type(options.width) ~= "number" then
   error "no width"
  elseif type(option.height) ~= "number" then
   error "no height"
  end
  --其餘參數可選
  _window(option.x or 0, --默認值
         option.y or 0,--默認值
         option.width,  --默認值
         option.height, --默認值
        )
  end
相關文章
相關標籤/搜索