千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:长沙千锋IT培训  >  技术干货  >  lua编译器和lua解释器有什么区别?

lua编译器和lua解释器有什么区别?

来源:千锋教育
发布人:xqq
时间: 2023-10-13 22:53:14

一、lua编译器和lua解释器的区别

lua编译器把lua脚本编译成lua虚拟机的指令。lua解释器除了有编译器外还有虚拟机,可以执行编译后的指令。lua是一门精妙简洁,而功能强大的语言,学习和掌握它的核心机制有着重要的意义。

Lua作用域

在Lua语言中声明的变量默认是全局变量,声明局部变量需要使用local关键字,和其他语言相比这有点特殊。

a = 10

function func()

    b = 10   仍然是全局变量

    local c = 20  局部变量

end

func()

print(a + b)    –> 20,即可以获取b的值

print(c)    –> nil

也就是说在lua中只要变量没定义成local,都可以在全局中获取它的值。对于局部变量,也分为函数作用域和块作用域。下面例子中a的作用域在fun函数内部,而b的作用域为if语句块内。

function  fun()

    local a = 1

    if a == 1

    then

        local b = 1

        a = a + 1

        print(b)    — 1

    end

    print(a)    — 2

    print(b)    — nil,超出块作用域

end

fun()

print(a)    — nil,超出函数作用域

延伸阅读:

二、生命周期

生命周期是指变量可以被访问的时间段,也就是从分配内存给它到回收它的内存中间的一段时间。变量的生命周期分为两种

一种是在栈中分配内存的变量,它的生命周期随着作用域的结束而结束,上面案例中的变量都符合这个规则。另一种是在堆中分配内存的变量,它的生命周期与作用域不一致,比如在堆中申请的内存,退出作用域后仍然存在。Lua采用了自动内存管理,也就是说我们不用操心Lua创建的对象是怎么分配和回收的。
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

怎么自定义Visual Studio代码折叠识别的区域?

2023-10-13

hcip和hcnp有什么区别?

2023-10-13

layui和vue的区别?

2023-10-13

最新文章NEW

cs和bs区别?

2023-10-13

DOF和HP有什么区别?

2023-10-13

hold和host的区别?

2023-10-13

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>