lua脚本语言快速入门教程_Lua

lua作为很好的嵌入式语言可以非常好的作为c/c++补充,在游戏行业是得到了广泛的应用

一直在思考,能不能把他引入商业领域的规则语言呢?将业务规则经常变的部分提炼出来,

而无须重新编译程序。作为规则引擎的角色进行使用

使用前当然得安装一下去http://www.lua.org/下载一个 Lua_v5.1.4.23.exe安装,装完之后执行

可以用 lua.exe逐行解释的方式,或者写完脚本用lExecutor.wlua执行

1)先来个helloworld

复制代码 代码如下:

> print 'helloWorld'
helloWorld
> print("helloWorld") --注释是这么写的!
helloWorld
> a='hello'
> print(a)
hello

2)主要类型

复制代码 代码如下:

> a=1
> b="abc"
> c={}
> d=print
>
> print(type(a))
number
> print(type(b))
string
> print(type(c))
table
> print(type(d))
function
>

如上所示,lua主要有四种类型,即数字,字符串,table(其实理解可以理解为javascript的object),以及函数类型,

当然了,还有最常的bool型了,true以及false,(这里不考虑nil,以及userdata,thread等)

函数类型的变量,加上”() “即可以执行,如

复制代码 代码如下:

> d(b)
abc

3)变量及常量,字符串

复制代码 代码如下:

> a,b,c,d = 1,2,'c',{1}

> print (a,b,c,d)
      2       c       table: 0041BC58

> a="single 'quoted' string and double \"quoted\" string inside"

> b='single \'quoted\' string and double "quoted" string inside'

> c= [[ multiple line

>> with'single'

>> and "double" quoted strings inside.]]

>

> print(a)

single 'quoted' string and double "quoted" string inside

> print(b)

single 'quoted' string and double "quoted" string inside

> print(c)

 multiple line

with'single'

and "double" quoted strings inside.

 > a=a.."看我给接上"  --字符串用两个..可以进行连接

> print(a)

single 'quoted' string and double "quoted" string inside看我给接上

我们关注一下lua比较特别的地方

1.声明变量及给变量赋值的时候,可以多变量一起赋值
2.字符串常量可以用双引号及单引号,并且混用的时候无须转义字符,跟php有点类型,还可以用”[[]]”括起来

这一点类似于c#里面字符串可以加上@符号,可以保留字符串内的格式

4)逻辑控制语句

复制代码 代码如下:

> a=10 --逻辑控制语句就不费口舌了,反正就这几个词,跟pl/sql有点像

> if a==10 then

>> print("我是10")

>> elseif a== 11 then

>> print("我是11")

>> else

>> print("我是水户洋平等等")

>> end

我是10

5)循环结构

复制代码 代码如下:

> --第一种while循环
> a=1
> while a~=10 do
>> io.write(a.."  ")
>> a=a+1
>> end
1  2  3  4  5  6  7  8  9  >
> --第二种repeat、until循环
> a=0
> repeat
>>      a=a+1
>>      print(a)
>> until a==5
1
2
3
4
5
> --第三种for循环
> for a=1,4 do
>>      io.write(a)
>> end
1234>
> --比较特别,有个步进的概念,如下是以2为步进
13> for a=1,4,2 do
>> io.write(a..' ')
>> end
1 3 > for a=1,5,2 do
>> io.write(a.. '  ')
>> end
1  3  5  >

6)函数及其使用

复制代码 代码如下:

> --1.先来个最简单的

> function myFunc1()

>>      print("hello function")

>> end

> myFunc1()

hello function

> --2.再来个带参数的

> a=1

> b=2

> function myFunc2(par1,par2)

>>      return par1+par2

>> end

> c=myFunc2(a,b)

> print(c)

> --3.甚至可以返回多个变量

> a=1

> b=2

> function myFunc3(A,B)

>>      return B,A

>> end

> c = myFunc3(a,b) --c会等于返回的第一个,在此倒转过来即为2

> print(c)

> c,d=myFunc3(a,b) --当然如果给多个变量赋值就没有问题了

> print(c,d)
      1

> print(myFunc3(a,b)) --直接打印就把所有打印出来
      1

> --4.还可以是变参

> function myFunc4()

>> print()

>> end

> myFunc4(a,b,c,d)
      2       2       1

7)table(我觉得理解object也可以)的使用

复制代码 代码如下:

> linbc={}

> linbc.sex = "男"

> linbc.age = 27

> print(linbc,linbc.sex,linbc["age"])

table: 0041ED50 男      27

> A=linbc

> print(A["sex"])

> print(A)  --引用类型,看A以及linbc内存地址是一样的

table: 0041ED50

>  --瞧这用法,跟javascript的用法基本相当

>  --其实还可以理解为hashmap似的键值对

> for i,v in pairs(linbc) do

>>    print(i,v)

>> end

age     27

sex     男

>  --也可以作为数组,下标是从1开始的喔

> arr={1,2,3,"a",'b',linbc}

> for i,v in pairs(arr) do

>>    print(i,v)

>> end
      1
      2
      3
      a
      b
      table: 0041ED50

>  --既然作为数组吧,那肯定是可以增加记录的吧

> table.insert(arr,A)

> table.foreach(arr,function(i,v) print(v) end)

a

b

table: 0041ED50

table: 0041ED50

> --瞧上面,可以foreach,还可以用匿名函数喔

> --当然也可以用下标访问了

> print(arr[1])

> --调用table.insert会自动给增加下标,如

> table.insert(linbc,"hello")

> print(arr[1])

1

时间: 2024-10-28 18:38:09

lua脚本语言快速入门教程_Lua的相关文章

Lua脚本语言基本语法快速入门教程_Lua

Lua语法与C语言有些相似也不太一样,写了语句学一下 微笑 --begin a = --[[explain]] "ha"; print(a) if a == "ha" then print("if test passed") else print("if used wrong") end b,c=2,3 print(b,c) b,c=c,b if b==3 and c==2 then print("swap test

数据库快速入门教程--视频

数据库快速入门教程--视频 下载地址:http://v.51work6.com/courseInfoRedirect.do?action=courseInfo&courseId=240579 本课程是这个课程体系的核心之一,为软件开发人员所需数据库知识的学习教材,而不是培训一个DBA(数据库管理员),更具体的说是为Web开发程序员所需数据库知识的学习教材.基于培养程序员的目标,本课程对数据库和SQL语句的相关知识进行了深刻地阐明和分析,学习的重点是标准SQL语句的学习的掌握.常用数据库MySQL

jQuery Easyui快速入门教程_jquery

1.什么是JQuery EasyUI jQuery EasyUI是一组基于JQuery的UI插件集合,而JQueryEasyUI的目标就是帮助开发者更轻松的打造出功能丰富并且美观的UI界面.开发者不需要编写复杂的JavaScript,也不需要对css样式有深入的了解,开发者需要了解的只是一些简单的html标签. 2.学习jQuery EasyUI的条件 因为JQueryEasyUI是基于jQuery的UI库,所以,必须需要JQuery课程的基础. 3.JQuery EasyUI的特点 基于JQu

ReactJs快速入门教程(精华版)_javascript技巧

现在最热门的前端框架有AngularJS.React.Bootstrap等.自从接触了ReactJS,ReactJs的虚拟DOM(Virtual DOM)和组件化的开发深深的吸引了我,下面来跟我一起领略ReactJs的风采吧~~ 文章有点长,耐心读完,你会有很大收获哦~  一.ReactJS简介 React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设 Instagram 的网站.做出来以后,发现这套东西很

Java的JNI快速入门教程(推荐)_java

1. JNI简介 JNI是Java Native Interface的英文缩写,意为Java本地接口. 问题来源:由于Java编写底层的应用较难实现,在一些实时性要求非常高的部分Java较难胜任(实时性要求高的地方目前还未涉及,实时性这类话题有待考究). 解决办法:Java使用JNI可以调用现有的本地库(C/C++开发任何和系统相关的程序和类库),极大地灵活Java的开发. 2. JNI快速学习教程 2.1 问题: 使用JNI写一段代码,实现string_Java_Test_helloworld

Yii2框架制作RESTful风格的API快速入门教程

先给大家说下什么是REST restful REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是HTTP规范的主要编写者之一. 他在论文中提到:"我这篇文章的写作目的,就是想在符合架构原理的前提下,理解和评估以网络为基础的应用软件的架构设计,得到一个功能强.性能好.适宜通信的架构.REST指的是一组架构约束条件和原则." 如

使用Lua脚本语言开发出高扩展性的系统,AgileEAS.NET SOA中间件Lua脚本引擎介绍

一.前言      AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市场快速变化的开发团队,以达到节省开发成本.缩短开发时间,快速适应市场变化的目的.      AgileEAS.NET SOA中间件平台提供了敏捷快速开发软件工程的最佳实践,通过提供大量的基础支撑功能如IOC.ORM.SOA.分布式体系及敏捷并发开发方法所支撑的插件开发体系,以及提供了大量的

SQL语言快速入门(一)

sql语言|快速入门 SQL是英文Structured Query Language的缩写,意思为结构化查询语言.SQL语言的主要功能就是同各种数据库建立联系,进行沟通.按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言.SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等.目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL语言标准.虽然

SQL语言快速入门(三)

sql语言|快速入门 我们日常使用SQL语言的工作过程中,使用最多的还是从已经建立好的数据库中查询信息.下面,我们就来详细介绍一下如何使用SQL语言实现各种数据库查询操作. SELECT-FROM 为方便讲解,我们在数据库中创建名为Store_Information的如下数据表. Store_Information Store_Name Sales Date Los Angeles 00 Jan-10-2000 San Diego 0 Jan-11-2000 Los Angeles 0 Jan-