© 版权声明:本文为博主原创文章,转载请注明出处

1.Lua变量

  - 变量在使用前,必须在代码中进行声明,即创建该变量

  - 编译程序执行代码之前编译器需要知道如何给语句变量开辟存储区,用于存储变量的值

  - Lua变量有三种类型:全局变量、局部变量、表中的域

  - Lua中的变量全是全局变量,哪怕是语句块或是函数里,除非用local显示声明为局部变量

  - 局部变量的作用域从声明位置开始到所在语句块结束。

  - 变量的默认值为nil

2.赋值语句

  - 赋值是改变一个变量的值和改变表域的最基本的方法

  - Lua可以对多个变量同时赋值,变量列表和值列表的各个元素用逗号分开,赋值语句右边的值会依次赋给左边的变量

  - 遇到赋值语句Lua会先计算右边的所有的值然后再执行赋值操作,可以依此进行交互变量的值

  - 当变量个数和值的个数不一致时

    a. 变量个数 > 值的个数  按变量个数补足nil

    b. 变量个数 < 值的个数  多余的值会被忽略

  - 尽可能的多使用局部变量

    a. 避免命名冲突

    b. 访问局部变量的速度比全局变量更快

3.索引

  - 对table的索引使用方括号[],也可以使用.

4.variable.lua

a = 5							-- 全局变量
local b = 10 -- 局部变量,不在语句块或函数中,作用域从这里到文件结束 function joke()
c = 15 -- 全局变量,虽然在函数中,但是没有用local显示声明,所以为全局变量
local d = 20 -- 局部变量,只在joke()函数中有效,joke
print("local d = " .. d)
end local e -- 默认值为nil joke() print("a = " .. a)
print("b = " .. b)
print("c = " .. c)
print("d = ", d) -- .. 只能连接字符串,连接nil会报错
print("e = ", e) x, y = "a", "b" -- 多个变量同时赋值
print("x = " .. x .. " , y = " .. y) x, y = y, x -- 交换变量值
print("x = " .. x .. " , y = " .. y) u, v, w = "1", "2" -- 变量个数 > 值的个数,按变量个数补足nil
print("u = " .. u .. " , v = " .. v .. " , w = ", w) q, w, s = "11", "22", "33", "44"-- 变量个数 < 值的个数,忽略多余的值
print("q = " .. q .. " , w = " .. w .. " , s = " .. s) tab = {key = "value"}
print("tab.key = " .. tab.key) -- 使用.引用索引值

5.效果预览

参考:http://www.runoob.com/lua/lua-variables.html

Lua学习四----------Lua变量的更多相关文章

  1. Lua学习---编译生成lua和luac

    众所周知,Lua是一种强大的脚本语言,并且这种语言是用C语言实现的.为什么要学习这门语言?因为它可以增强我看C语言代码的功底. 我下的Lua版本是Lua5.3,关于Lua5.3的简介如下: http: ...

  2. Lua学习2 Lua小框架的搭建

    看了上一篇Lua环境搭建具体http://blog.csdn.net/liuwumiyuhuiping/article/details/9196435 为了方便学习. 具体新开始搭建一下学习的小框架. ...

  3. Lua学习十一----------Lua迭代器

    © 版权声明:本文为博主原创文章,转载请注明出处 Lua迭代器 - 迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址 - Lu ...

  4. Lua学习三----------Lua数据类型

    © 版权声明:本文为博主原创文章,转载请注明出处 Lua数据类型 - Lua是动态类型语言,不需要为变量定义类型,只需要为变量赋值 - Lua有8中基本数据类型:nil.boolean.number. ...

  5. Lua学习二----------Lua的基本语法

    © 版权声明:本文为博主原创文章,转载请注明出处 Lua基本语法: 1.--表示单行注释 2.--[[--]]表示多行注释 3.Lua区分大小写 4.Lua中变量默认是全局变量,除非用local显式声 ...

  6. lua学习:lua中“类”的实现

    在之前的面试遇到考用lua实现类的题目.现在就补补这块知识点. 我们都知道Lua中的table是一个对象.拥有状态,拥有self,拥有独立于创建者和创建地的生命周期. 一个类就是一个创建对象的模具.L ...

  7. Lua学习十----------Lua数组

    © 版权声明:本文为博主原创文章,转载请注明出处 1.LUA数组 - 一维数组 - 多维数组 2.array.lua -- 一维数组 print("一维数组") array1 = ...

  8. Lua学习九----------Lua字符串

    © 版权声明:本文为博主原创文章,转载请注明出处 1.Lua字符串 - ''单引号间的一串字符 - ""双引号之间的一串字符 - [[]]之间的一串字符 2.Lua转义字符 3.字 ...

  9. Lua学习八----------Lua运算符

    © 版权声明:本文为博主原创文章,转载请注明出处 1.Lua运算符: - 算术运算符:+(加法).-(减法).*(乘法)./(除法-取整).%(除法-取余).^(乘幂).-(负号) - 关系运算符:= ...

随机推荐

  1. 【02】 Vue 之 数据绑定

    2.1. 什么是双向绑定? Vue框架很核心的功能就是双向的数据绑定. 双向是指:HTML标签数据 绑定到 Vue对象,另外反方向数据也是绑定的.通俗点说就是,Vue对象的改变会直接影响到HTML的标 ...

  2. 高级参数绑定(数组和List绑定)

    1.绑定数组: (1) 需求 在商品列表页面选中多个商品,然后删除. (2). 需求分析 功能要求商品列表页面中的每个商品前有一个checkbok,选中多个商品后点击删除按钮把商品id传递给Contr ...

  3. 【eclipse】导入/导出开发环境(包括编辑器字体颜色大小等)

    Eclipse的 File -> Export(导出),在窗口中展开 General(常规) -> Perferences(首选项)-->Export all(全部导出)然后点击 N ...

  4. Gym 101064 D Black Hills golden jewels 【二分套二分/给定一个序列,从序列中任意取两个数形成一个和,两个数不可相同,要求求出第k小的组合】

    D. Black Hills golden jewels time limit per test 2 seconds memory limit per test 256 megabytes input ...

  5. 浅谈.Net异步编程的前世今生----EAP篇

    前言 在上一篇博文中,我们提到了APM模型实现异步编程的模式,通过使用APM模型,可以简化.Net中编写异步程序的方式,但APM模型本身依然存在一些缺点,如无法得知操作进度,不能取消异步操作等. 针对 ...

  6. POJ 3268 Silver Cow Party (Dijkstra + 优先队列)

    题意:由n个牧场,编号1到n.每个牧场有一头牛.现在在牧场x举办party,每头牛都去参加,然后再回到自己的牧场.牧场之间会有一些单向的路.每头牛都会让自己往返的路程最短.问所有牛当中最长的往返路程是 ...

  7. python 关键词

    一.python关键字   1. and :表示逻辑判断 [与] a = '1' b = 1 if a and b: print('Hello Python') 2.as :单独没有实际意思,常与wi ...

  8. 北冥有 Data,其名为鲲,鲲之大,一个 MySQL 放不下!

    千万量级的数据,用 MySQL 要怎么存? 初学者在看到这个问题的时候,可能首先想到的是 MySQL 一张表到底能存放多少条数据? 根据 MySQL 官方文档的介绍,MySQL 理论上限是 (232) ...

  9. asp.net获取URL方法

    方法如下: Request.Url.ToString()获取完整url(协议名+域名+站点名+文件名+参数):https://localhost:44300/WebForm1.aspx?abc=123 ...

  10. 【原创】Android View框架总结(三)View工作原理

    测量/布局/绘制顺序 如何引起View的测量/布局/绘制? PerformTraversales() ViewRoot View工作基本流程  MeasureSpec SpecMode Measure ...