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.

顺序 选择 循环 总结

posted @   kaizenly  阅读(7866)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
打赏

喜欢请打赏

扫描二维码打赏

微信打赏

点击右上角即可分享
微信分享提示