Lua中local变量和非local变量的区别
示栗代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | local myClass = { m = 10,n = 11} function myClass: new () local self = {} setmetatable(self,{__index = myClass}) return self end local a = 0 local b = 0 local c = 0 myClass.a = 1 myClass.b = 2 myClass.c = 3 a = 4 b = 5 c = 6 d= 7 e = 8 f = 9 print(myClass.a,myClass.b,myClass.c) print(a,b,c) return myClass |
相对于C#对应的解释:
带local的变量a,b,c其实是私有静态变量。
不带local的变量d,e,f其实是公有静态变量。
私有静态变量验证方式:
用面象对象写一个类,然后去实例化一个对象,然后使用这个对象内部的方法调用local变量,你会发现不同的对象里面的local在每次赋值之后都会一样。
如果要让对象拥有自己的变量,那么我建议您在元表里面写变量,那么这样每个对象产生的变量就会不一样。
例如以上元表中的
1 | { m = 10,n = 11} |
小时候我把老婆种到地下,长大了我能收获一大堆老婆!
我是威少,我是一名Unity游戏的主程,我为自己带盐,希望此文能给您一点点微不足道的帮助,祝你成功!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律