Lua编程中的一些基本语法整理

Lua是相当简单易学,让我们开始创建第一个Lua程序!
第一个Lua程序
交互模式编程:

Lua中提供了一个名为交互模式模式。在这种模式下,你可以键入一个接一个的指令,并得到立竿见影的效果。此所用的shell使用的是lua-i或只是lua的命令被调用。一旦在这种模式下,按Enter键和互动模式将被启动,如下图所示。

$ lua -i
$ Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio
quit to end; cd, dir and edit also available

可以使用下面的语句打印你想要的东西

按回车,会得到如下的输出。

代码如下:

'test'

默认模式编程:

调用解释器使用lua文件名参数开始执行的文件,并一直持续到脚本完成。当脚本完成时,解释器不再是活动的。

让我们写一个简单Lua程序。所有Lua文件将具有扩展.lua。因此把下面的代码在一个test.lua文件中。

代码如下:

print("test")[code]

假设,LUA环境设置正确,让我们运行程序,使用以下命令:

[code]
$ lua test.lua

我们将得到下面的输出。

代码如下:

test

让我们尝试另一种方式来执行Lua程序。下面是修改后的test.lua文件:

代码如下:

#!/usr/local/bin/lua

print("test")

在这里,假设已安装有Lua解释器在/usr/local/bin目录中。第一行是由解释器,如果用#号开始忽略。现在,尝试如下运行这个程序:

代码如下:

$ chmod a+rx test.lua
$./test.lua

将得到下面的输出。

代码如下:

test

现在让我们来看看Lua程序中的基本结构,因此,这能容易理解Lua编程语言的基本构建块。
Lua令牌

一个Lua程序由不同的令牌组成,令牌可以是一个关键字,标识符,常量,字符串文字或符号。例如,下面Lua语句包含三个令牌:

代码如下:

io.write("Hello world, from ",_VERSION,"!\n")

各个令牌是:

代码如下:

io.write
(
"Hello world, from ",_VERSION,"!\n"
)

注释

注释就像在Lua程序中帮助文本,它们被解释忽略。他们开始与- [[终止及字符- ],如下所示:

代码如下:

--[[ my first program in Lua --]]

标识符

一个Lua标识符是用来标识变量,函数,或任何其它用户定义的项目名称。一个标识符开始以字母A到Z或a到z或下划线_后跟零个或多个字母,下划线和数字(0?9)。

Lua中不允许标识符中的标点字符,如@,$,和%。 Lua是区分大小写的编程语言。因此,Manpower 和manpower 在Lua中为两个不同的标识符。这里是可接受的标识符的一些例子:

代码如下:

mohd       zara    abc   move_name  a_123
myname50   _temp   j     a23b9      retVal

关键词

下面列出了一些在Lua中的保留字。这些保留的字不可以被用作常量或变量,或任何其它标识符。
nil, not, or, repeat, return, then, true, until, 和 while.

 Lua中的空白符

仅包含空格,可能带有注释行,被称为一个空行,和Lua解释完全忽略它。

空白是Lua中用来描述空格,制表符,换行符和注释的术语。空格分开的另一个语句的一部分,使解释来确定,其中在一份声明中的一个元素,如int,结束和下一个元素开始。因此,在下面的语句:

代码如下:

local age

必须有至少一个空白字符(通常是一个空格)local和age之间的解释器,以便能够区分它们。另一方面,在下面的语句

代码如下:

fruit = apples + oranges   --get the total fruit

空格字符是必要的,如:fruit 和=之间,或=和apples,虽然是自由的,如果想提高可读性的目的,那么要加入一些空格。

(0)

相关推荐

  • Lua检测数组(tabble)中是否包含某个值

    一.检测数组中是否包含某个值 -- 遍历数组 function IsInTable(value, tbl) for k,v in ipairs(tbl) do if v == value then return true; end end return false; end 二.lua 判断一个字符是否存在某个数组 判断字符b,是否存在于数组list中 function in_array(b,list) if not list then return false end if list then

  • Lua中遍历文件操作代码实例

    写的一个关于遍历文件的程序段  记录一下咯 --[[检查所有.txt文件 比如A.txt中第一行规定有20列,但是在X行中多输入一个Tab,则输出:A表的X行填写不规范,行末有多余填写 ]] getinfo = io.popen('dir ..//file /b /s') all = getinfo:read('*all') local filenameList = io.open("filename.txt", "wb") filenameList:write(&

  • Linux下编写Lua扩展so文件和调用方法实例

    复制代码 代码如下: #include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <errno.h> #include <string.h>   #include <unistd.h> #include <fcntl.h> #include <sys/stat.h> #include <limits.h> #include &

  • Lua编程中的一些基本语法整理

    Lua是相当简单易学,让我们开始创建第一个Lua程序! 第一个Lua程序 交互模式编程: Lua中提供了一个名为交互模式模式.在这种模式下,你可以键入一个接一个的指令,并得到立竿见影的效果.此所用的shell使用的是lua-i或只是lua的命令被调用.一旦在这种模式下,按Enter键和互动模式将被启动,如下图所示. $ lua -i $ Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio quit to end; cd, dir and edit

  • 浅析Lua编程中的异常处理

     需要进行错误处理 错误处理是必要的,因为真实世界中的操作通常需要使用复杂的操作,包括文件操作,数据库事务和web服务调用.没人关心错误的业务,涉及保密信息或金钱交易时造成大的损失. 在任何编程,总是有错误处理的要求.错误可以是两种类型,其中包括, 语法错误 运行时错误 语法错误 因使用不当造成的各种程序组件,如运算符和表达式中出现语法错误.一个简单的例子中的语法错误如下所示. 复制代码 代码如下: a == 2 如你所知,有使用单一等于和双等于之间的差异.使用一个替代其他可导致错误.等于是指分

  • Lua编程中使用嵌套循环的使用教程

    Lua编程语言允许使用一个循环内嵌另一个循环.下文将介绍几个例子来说明这一概念. 语法 在Lua中嵌套循环语法语句如下: 复制代码 代码如下: for init,max/min value, increment do    for init,max/min value, increment    do       statement(s)    end    statement(s) end 在Lua编程语言中的嵌套的while循环的语法语句,如下所示: 复制代码 代码如下: while(con

  • Python面向对象编程中的类和对象学习教程

    Python中一切都是对象.类提供了创建新类型对象的机制.这篇教程中,我们不谈类和面向对象的基本知识,而专注在更好地理解Python面向对象编程上.假设我们使用新风格的python类,它们继承自object父类. 定义类 class 语句可以定义一系列的属性.变量.方法,他们被该类的实例对象所共享.下面给出一个简单类定义: class Account(object): num_accounts = 0 def __init__(self, name, balance): self.name =

  • IOS swift3.0 下闭包语法整理

    IOS swift3.0 下闭包语法整理 一.闭包的概念 有oc基础的都知道,闭包其实是oc里面的block,语法格式不一样,但作用是一样的.主要是用于callBack(异步回调)或者两个类之间的通信.它的本质一个函数,一个可执行的代码块,只是这个函数是没有名字的,也就是匿名函数.你也可以把他看作如 int.float一样,是一种数据类型,一种可以作为参数传递的数据类型. 二.基本语法 1.闭包的声明 //定义一个求和闭包 //闭包类型:(Int,Int)->(Int) let add:(Int

  • 窥探Swift编程中的错误处理与异常抛出

    在Swift 2.0版本中,Swift语言对其错误处理进行了新的设计,当然了,重新设计后的结果使得该错误处理系统用起来更爽.今天的主题就是系统的搞一下Swift中的错误处理,以及看一下Swift中是如何抛出异常的.在编译型语言中,错误一般分为编译错误和运行时错误.我们平时在代码中处理的错误为运行时错误,我们对异常进行处理的操作的目的是为了防止程序出现错误而导致其他的副作用,比如用户数据未保存等等. 在今天的文章中,先给出主动产生异常的几种情况,然后再给出如何处理被动异常. 一.主动退出程序的几种

  • 详解Swift编程中的常量和变量

    常量 常量指的是程序无法在其执行期间改变的固定值. 常量可以是任何像整型常量,浮点常量,字符常量或字符串的基本数据类型.也可以是枚举常量. 这些常量和常规变量处理一样,只是它们的值不能在定义后进行修改. 声明常量 使用常量时,则必须使用关键字 let 声明它们如下: 复制代码 代码如下: let constantName = <initial value> 下面是一个简单的例子来说明如何在 Swift 中声明一个常量: 复制代码 代码如下: import Cocoa let constA =

  • 浅谈Swift编程中switch与fallthrough语句的使用

    在 Swift 中的 switch 语句,只要第一个匹配的情况(case) 完成执行,而不是通过随后的情况(case)的底部,如它在 C 和 C++ 编程语言中的那样.以下是 C 和 C++ 的 switch 语句的通用语法: 复制代码 代码如下: switch(expression){    case constant-expression  :       statement(s);       break; /* optional */    case constant-expressio

  • Python编程中的反模式实例分析

    本文实例讲述了Python编程中的反模式.分享给大家供大家参考.具体分析如下: Python是时下最热门的编程语言之一了.简洁而富有表达力的语法,两三行代码往往就能解决十来行C代码才能解决的问题:丰富的标准库和第三方库,大大节约了开发时间,使它成为那些对性能没有严苛要求的开发任务的首选:强大而活跃的社区,齐全的文档,也使很多编程的初学者选择了它作为自己的第一门编程语言.甚至有国外的报道称,Python已经成为了美国顶尖大学里最受欢迎的编程入门教学语言. 要学好一门编程语言实属不易,在初学阶段,就

  • PHP编程中的Session阻塞问题与解决方法分析

    本文实例讲述了PHP编程中的Session阻塞问题与解决方法.分享给大家供大家参考,具体如下: 使用session过程中,在开启session后,同一浏览器,执行同一程序,不同页面会被锁.不同浏览器不会出现这种情况. 疑问:是不是session_start导致了阻塞? 于是,我写了几个页面测试了一下,发现是session导致了阻塞,而其他两种情况不会造成阻塞. 查了下PHP的Bug列表,发现有人提出了这个问题: Description: ------------ Calling session_

随机推荐