博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lua_local变量在new时不会被清空
阅读量:6332 次
发布时间:2019-06-22

本文共 753 字,大约阅读时间需要 2 分钟。

前言

我的运行环境 Lua5.3

按照我们以往的Java或C#编程经验,如果一个class被new,那么这个class中所有成员变量的值都是默值或是构造函数中赋的值,但在Lua中的local变量却并不会被清空。

示例

这个例子中,我们定义了一个local 的 instanceClassA中,通过new() 两次 ClassA,通过输出观察到构造函数(ctor)调用了两次,但第二次new时,local 变量还是存在上次的值。

--- Lua中local变量的作用域,并不局限于当前class--- Created by zhaoqingqing. 569032731@qq.com--- DateTime: 2018/11/26------require("Common/class")local ClassA = class("ClassA")local flag = nilfunction ClassA:ctor()    print("ClassA:ctor")    self:TestLocal()endfunction ClassA:TestLocal()    if not flag then        flag = "ClassA"        print("TestLocal")    endendClassA.new()ClassA.new()

输出结果:

lua.exe E:/Code/blog_samplecode/lua_scripts/oop/LocalRefContext.luaClassA:ctorTestLocalClassA:ctor

转载于:https://www.cnblogs.com/zhaoqingqing/p/10022803.html

你可能感兴趣的文章
html img Src base64 图片显示
查看>>
[Spring学习笔记 7 ] Spring中的数据库支持 RowMapper,JdbcDaoSupport 和 事务处理Transaction...
查看>>
FFMPEG中关于ts流的时长估计的实现(转)
查看>>
Java第三次作业
查看>>
【HDOJ 3652】B-number
查看>>
android代码混淆笔记
查看>>
Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals) C. String Reconstruction 并查集
查看>>
BMP文件的读取与显示
查看>>
Flash文字效果
查看>>
各种排序算法总结篇(高速/堆/希尔/归并)
查看>>
使用c#訪问Access数据库时,提示找不到可安装的 ISAM
查看>>
Highcharts X轴纵向显示
查看>>
windows 注册表讲解
查看>>
【算法】论平衡二叉树(AVL)的正确种植方法
查看>>
基于DDD的现代ASP.NET开发框架--ABP系列之1、ABP总体介绍
查看>>
【原】东拼西凑PBR(1):PBR基础
查看>>
react 从零开始搭建开发环境
查看>>
scala recursive value x$5 needs type
查看>>
ps -ef |grep 输出的具体含义
查看>>
markdown编辑
查看>>