lua編程中,我們經常也會遇到函數的聲明定義和調用。
【1】lua中函數定義與調用的方法
lua有兩種函數定義和調用的方法(本質都是用屬性,方式不同而已):
(1)點號形式
(2)冒號形式
兩種方法的聯系:
(1)相同點:本質都是用屬性方式
(2)不同點:用冒號形式定義的函數默認會有一個參數self。self實質指向表本身(類似於C++中的this)。
【2】兩種方法的定義調用實例對比
綜上可知,兩種方式會有四種組合需求:
(1)點號定義 && 點號訪問
_M = {value = 10} function _M.set_value(_M, new_value) _M.value = new_value end function _M.print_sum(_M) print(_M.value + _M.value) end print(_M.value) _M.set_value(_M, 20) print(_M.value) _M.print_sum(_M) --[[ 10 20 40 --]]
(2)冒號定義 && 冒號訪問
_M = {value = 10} function _M:set_value(new_value) self.value = new_value end function _M:print_sum() print(self.value + self.value) end print(_M.value) _M:set_value(20) print(_M.value) _M:print_sum() --[[ 10 20 40 --]]
(3)點號定義 && 冒號訪問
_M = {value = 10} function _M.set_value(_M, new_value) _M.value = new_value end function _M.print_sum(_M) print(_M.value + _M.value) end print(_M.value) _M:set_value(20) print(_M.value) _M:print_sum() --[[ 10 20 40 --]]
(4)冒號定義 && 點號訪問
_M = {value = 10} function _M:set_value(new_value) self.value = new_value end function _M:print_sum() print(self.value + self.value) end print(_M.value) _M.set_value(_M, 20) print(_M.value) _M.print_sum(_M) --[[ 10 20 40 --]]
Good Good Study, Day Day Up.
順序 選擇 循環 總結