目录:1.输出2.注释3.控制语句4.赋值语句5.运算符6.关键字7.变量类型8.其他

原文地址http://blog.csdn.net/dingkun520wy/article/details/49930543

1.输出

print("Hello world")

2.注释

单行注释中,连续两个减号"--"表示注释

多行注释中,由"--[["表示注释开始,并且一直延续到"]]"为止

3.控制语句

(If)

if 条件 then ... elseif 条件 then ... else ... end

实例

if 1+1=2 then print("true")
elseif 1+2~=3 then print("true")
else print("false") end

While

while 条件 do ... end

实例

while 1+1~=2 do print("true") end

Repeat

repeat ... until 条件

实例

repeat print("Hello") until 1+1~=0

For

for 变量=初值, 终点值, 步进 do ... end

实例

for i = 1, 10, 2 do print(i) end

for 变量 1, 变量 2, ... 变量 n in 表或枚举函数 do ... end

实例

for a,b in mylist do print(a, b) end

4.赋值语句

Lua中赋值是可以同时给多个变量赋值的

如:

a,b,c = 1,2,3

当左边变量少时舍弃

当右边变量少时补nil

5.运算符

运算符优先级,从低到高顺序如下:

or   逻辑或  a or b:如果 a 为 true,则返回 a;否则返回 b

and 逻辑与 a and b:如果 a 为 false,则返回 a;否则返回 b

<  >  <= >= ~= ==比较运算,~=为不等于

..  字符串链接 print("Hello world".."Lua")

+ -  数值运算

* / %  数值运算

not # - 一元运算: not是取反,#()区长度,-负数

^ 数值运算:指数乘方运算

6.关键字

and

break

do

else

elseif

end

false

for

function

if

in

local

nil

not

or

repeat

return

then

true

until

while

7.变量类型

nil:空值,所有没有使用过的变量,都是 nil。nil 既是值,又是类型。

Boolean:布尔值,只有两个有效值:true 和 false。在Lua中只有false和nil是false,其他都是true

Number:数值,在 Lua 里,数值是实数。

String:字符串,如果你愿意的话,字符串是可以包含"\0"字符的(这和 C 语言总是以"\0"结尾是不一样的)

详见 http://blog.csdn.net/dingkun520wy/article/details/50434530

Table:关系表类型,这个类型功能比较强大,详见http://blog.csdn.net/dingkun520wy/article/details/50231603

Function:函数类型,函数也是一种类型,也就是说,所有的函数,它本身就是一个变量

例如:

function add(a,b)

return a+b

end

详见:http://blog.csdn.net/dingkun520wy/article/details/50275387

Userdata:这个类型专门用来和 Lua 的宿主打交道的。宿主通常是用 C 和 C++来编写的,是宿主的任意数据类型,常用的有 Struct 和指针。

Thread:线程类型,在 Lua 中没有真正的线程。Lua 中可以将一个函数分成几部份运行

7.其他

在 Lua 中,一切都是变量,除了关键字。

在 Lua 中,语句之间可以用分号";"隔开,也可以用空白隔开。

在 Lua 中,for 的循环变量总是只作用于 for 的局部变量;当省略步进值时,for 循环会使用 1 作为步进值

在 Lua 中,语句块是用 do 和 end 括起来的。

在 Lua 中,变量总是全局变量,除非我们在前面加上"local"。





Lua基础之语法的更多相关文章

  1. Lua基础语法讲解

    Lua 是什么? Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能. Lua 是巴西里约热内卢天主教大学( ...

  2. Lua基础 函数(一)

    转自: http://blog.csdn.net/wzzfeitian/article/details/8653101 在Lua中,函数是对语句和表达式进行抽象的主要方法.既可以用来处理一些特殊的工作 ...

  3. Step By Step(Lua基础知识)

    Step By Step(Lua基础知识) 一.基础知识:    1. 第一个程序和函数:    在目前这个学习阶段,运行Lua程序最好的方式就是通过Lua自带的解释器程序,如:    /> l ...

  4. node.js学习(二)--Node.js控制台(REPL)&&Node.js的基础和语法

    1.1.2 Node.js控制台(REPL) Node.js也有自己的虚拟的运行环境:REPL. 我们可以使用它来执行任何的Node.js或者javascript代码.还可以引入模块和使用文件系统. ...

  5. Lua 基础

    Lua 5.3 的中文手册, http://cloudwu.github.io/lua53doc 在线浏览 --第一部分 -- 两个横线开始单行的注释 --[[ 加上两个[和]表示 多行的注释. -- ...

  6. OC基础 点语法的使用

    OC基础 点语法的使用 1.创建一个Student类继承于NSObject,Student.h文件 #import <Foundation/Foundation.h> @interface ...

  7. 二、JAVA基础、语法

    第二节:JAVA基础.语法 1.修饰符.变量:    Java中主要有如下几种类型的变量    局部变量                                                 ...

  8. Lua基础之MetaTable(6)

    Lua基础之MetaTable(6) 转载地址:http://nova-fusion.com/2011/06/30/lua-metatables-tutorial/ 关于MetaTable的补充:ht ...

  9. 六. Python基础(6)--语法

    六. Python基础(6)--语法 1 ● Python3中, Unicode转字节的方法 print(bytes("李泉", encoding = 'utf-8')) prin ...

随机推荐

  1. 机器学习之AdaBoost

    Adaboost是一种组合学习的提升算法,能将多个弱学习算法(甚至只比随机猜测好一点)组合起来,构成一个足够强大的学习模型. 组合学习 组合学习是将多个假说组合起来,并集成它们的预测.比如对于一个问题 ...

  2. 关于Linux的总结(三)

    1.man_page.txt 1.内部命令:echo 查看内部命令帮助:help echo 或者 man echo 2.外部命令:ls 查看外部命令帮助:ls --help 或者 man ls 或者 ...

  3. hdu 1423 最长公共递增子序列

    这题一开始把我给坑了,我还没知道LCIS的算法,然后就慢慢搞吧,幸运的是还真写出来了,只不过麻烦了一点. 我是将该题转换为多条线段相交,然后找出最多多少条不相交,并且其数值死递增的. 代码如下: #i ...

  4. js学习笔记—转载(闭包问题)

    ---恢复内容开始--- 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现.     一.变量的作用域 要理解闭包,首先必须理解Javascrip ...

  5. MVC下用户登录状态校验的问题以及解决方案--------------Action全局过滤器的使用

    前言当我们访问某个网站的时候需要检测用户是否已经登录(通过Session是否为null),我们知道在WebForm中可以定义一个BasePage类让他继承System.Web.UI.Page,重写它的 ...

  6. 【Cocos2d入门教程二】Cocos2d-x基础篇

    上一章已经学习了环境的搭建.这一章对基础概念进行掌握.内容大概有: 1.导演 2.场景 3.节点 4.层 4.精灵 1.导演(Director) 导演存在的主要作用: a.环境设定(帧率 初始化ope ...

  7. C盘空间不足,释放C盘空间

    最近电脑总是特别卡,后来发现C盘空间严重不足,只剩下几十兆,以前最严重的时候是剩下0kb可以,怎一个惨字了得... 我所知道的C盘空间不足会导致的几个主要问题有: 1)拷贝大文件会失败.因为拷贝和剪切 ...

  8. Objective-C 【关于导入类(@class 和 #import的区别)】

    之前我们分析过 #include 和 #import 的区别,#import不会引起交叉编译,#import 确定一个文件只能被导入一次,使在递归包含中不会出现问题. 那么 #import 和 @cl ...

  9. spring读取加密配置信息

    描述&背景Spring框架配置数据库等连接等属性时,都是交由 PopertyPlaceholderConfigurer进行读取.properties文件的,但如果项目不允许在配置文件中明文保存 ...

  10. Hibernate 拥有 Mybits 的SQL/HQL特性 (注解、XML两不误)

        第一次写博客.文章有点渣,喜欢就看看,不喜欢路过点个赞.     效果:直接一条语句多种用法     FROM User A    WHERE    1=1    <#if id??&g ...