Lua函數聲明與調用


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.

順序 選擇 循環 總結


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM