lua: 如果将图像创建为本地变量,存储器仍然会被使用吗?
2011-8-25 2:55:3
收藏:0
阅读:99
评论:1
local function myInit()
local topBackGround = display.newImageRect("backGround.png", 500, 500)
topBackGround.x = 0
topBackGround.y = 0
end
据我所知,局部变量在函数执行完后不会占用内存,但是在本例中图像仍然存在,会占用内存吗?
如果不会,如果我将其插入到全局 displayGroup
中会怎样呢?
原文链接 https://stackoverflow.com/questions/7184447
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
Lua是垃圾收集的。因此,它将一直存在,直到Lua收集它为止。由于没有任何对象对它进行引用,函数执行后随时可以进行收集。
然而,没有任何对象对它进行引用意味着你无法使用它。你可以创建一个新的对象,但它将是一个_新的_对象,而不是之前的那个对象。由于Corona缓存图像,如果原始图像没有被收集,它可能在内部引用相同的图像。但这种做法是_极其_不好的。
任何时候,在Lua中创建任何东西,如果你想让它一直存在,那么你需要确实将它保留下来。保持一个对它的引用。
换句话说,这个:
display.newImageRect("backGround.png", 500, 500)
返回一个值。一个_唯一_的值。任何声明为
local
的变量在它们的作用域结束后都会被丢弃(除非它们被作为闭包被函数捕获)。如果你的程序在任何时候无法找到一个值,因为所有对它的引用都已经丢弃,那么这个值将被删除。因此,如果你想使用某些东西,你需要将它保持在一个可以获取到的地方。否则,Lua知道你找不到它,并且会将其删除。