lua 变量

类型

  • 全局变量

    lua 变量默认均为全局变量

    打印一个未定义的变量输出为 nil

    示例代码

    a = 1
    print(a, b)
  • 局部变量

    lua 变量默认均为全局变量, 除非变量前显式声明了 local 关键词

    在局部变量作用域范围之外, 无法获取到变量值

    示例代码

    a = 1
    local b = 2 function test()
    a = 4
    local c = 3
    end test() print(a, b, c)
  • 表中的域

    对 table 的索引使用 "[]"

    若索引为字符串时, 也可以使用 "."

赋值

  • 简单赋值

    和其他语言一样, 直接使用 "=" 进行赋值

    示例程序

    a = 1
  • 多变量同时赋值

    类似于 go 语言, lua 语言也可以使用多变量同时赋值的语法

    当变量数量大于值数量, 多余的变量会被赋值为 nil

    当变量数量小于值数量, 多余的值会被忽略

    示例程序

    a, b = 1, 2
    print(a, b) a, b, c = 3, 4
    print(a, b, c) a, b = 5, 6, 7
    print(a, b)

总结

变量有三种类型

  • 全局变量
  • 局部变量
  • 表中的域

尽可能使用局部变量

  • 避免命名冲突
  • 访问局部变量的速度比全局变量快
  • 防止变量污染

lua 支持多变量同时赋值

lua 变量的更多相关文章

  1. Lua学习四----------Lua变量

    © 版权声明:本文为博主原创文章,转载请注明出处 1.Lua变量 - 变量在使用前,必须在代码中进行声明,即创建该变量 - 编译程序执行代码之前编译器需要知道如何给语句变量开辟存储区,用于存储变量的值 ...

  2. Lua变量

    Lua 变量 变量在使用前,必须在代码中进行声明,即创建该变量. 编译程序执行代码之前编译器需要知道如何给语句变量开辟存储区,用于存储变量的值. Lua 变量有三种类型:全局变量.局部变量.表中的域. ...

  3. Lua 变量名词

    UpValue Lua中的函数是一阶类型值(first-class value),定义函数就象创建普通类型值一样(只不过函数类型值的数据主要是一条条指令而已),所以在函数体中仍然可以定义函数.假设函数 ...

  4. Lua学习笔记2. lua变量和 循环

    1. lua中变量的作用域有三种:全局,局部,表中的域 需要注意的是默认的变量都是全局变量,必须声明为local的变量才是局部变量,即使是在函数里面没有使用local修饰的变量依然是全局变量!!!! ...

  5. lua变量作用域

    3.5 – Visibility Rules Lua is a lexically scoped language. The scope of a local variable begins at t ...

  6. Lua 语言变量

    Lua 变量 变量在使用前,必须在代码中进行声明,即创建该变量.编译程序执行代码之前编译器需要知道如何给语句变量开辟存储区,用于存储变量的值. Lua 变量有三种类型:全局变量.局部变量.表中的域. ...

  7. lua 2 变量

    变量在使用前,必须在代码中进行声明,即创建该变量. 编译程序执行代码之前编译器需要知道如何给语句变量开辟存储区,用于存储变量的值. Lua 变量有三种类型:全局变量.局部变量.表中的域. Lua 中的 ...

  8. lua数据类型与变量

    Lua数据类型与变量 Lua中有  8个基本类型分别为: nil.boolean.number.string.userdata.function.thread和 table. lua变量三种类型:全局 ...

  9. LUA 学习笔记

    1.C# 与 LUAC#调用LUA比较简单,但LUA调用C#,有两种方法,一种是直接反射调用,但这种方法有局限性,比如性能低,在IOS平台无法使用反射,因此一般使用WARP方法,即把C#代码注册到LU ...

随机推荐

  1. ajax(省,市,县)三级联动

    下面我们用Jquery,ajax,做一个省,市,县的三级联动: 下面是我做三级联动下拉的步骤以及逻辑 第一步:先做一个省市区表格 第二步:建个PHP页面显示用我是在<body>里放< ...

  2. 使用IDEA的gradle整合spring+ mybatis 采用javaconfig配置

    1.新建一个工程 2.工程目录 3.添加gradle.propertes文件 activeMQVersion=5.7.0 aspectJVersion=1.7.2 commonsLangVersion ...

  3. git 关键词扩展

    用习惯了svn 的 关键词扩展.自然在git上也会寻找. 不知道啥是svn的关键词扩展? 简单列举下: 对于subversion来说,一些版本信息是不需要手动添加的,subversion提供了关键字替 ...

  4. 一段从TXT导入excel的py脚本

    #创建文件file = Workbook(encoding='utf-8')#创建sleettableTotalTime = file.add_sheet('TotalTime')#每列给出名称tab ...

  5. .NET Core项目从xproj+project.json向csproj迁移简介

    3月7日,微软发布了Visual Studio 2017 RTM,与之一起发布的还有.NET Core Runtime 1.1.0以及.NET Core SDK 1.0.0,尽管这些并不是最新版,但也 ...

  6. 【子非鱼】冒泡排序过程呈现之java内置GUI表示

    自己玩玩写写,排序的过程多么有趣,特别是把看着电脑吧一堆乱七八糟的数据排成有序组合的时候,看起来贼舒服,特别是强迫症患者.好了,话不多说上代码,也算是自己记录一下吧,没有什么技术含量但个人感觉比较有趣 ...

  7. Markdowm入门

    今天介绍一种非常好用的小巧性标记语言--Markdown,熟悉它的语法规则,这将会节省你很多编辑文本文档格式的时间,提高你的工作效率和学习效率. 一.什么是Markdown Markdown是一种可以 ...

  8. (转)CentoS 下报的 Requires: perl(:MODULE_COMPAT_5.8.8)

    vim /etc/yum.repos.d/epel.repo 把 mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5& ...

  9. iwebshop中的增删改查

    <?php class Text extends IController { public function hello() { $this->redirect('hello'); } p ...

  10. Java 枚举详解

    为什么要用枚举 在博客系统中,一篇文章有且可能有这几种状态, 数据库中article文章表中state字段存储数值,表示其状态: 0(已发表Published) 1(草稿Draft) 2(撤回撤回(D ...