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
本文向大家介绍Lua脚本语言入门笔记,包括了Lua脚本语言入门笔记的使用技巧和注意事项,需要的朋友参考一下 什么是Lua Lua 是一个小巧的脚本语言。是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henri
本文向大家介绍Lua教程(一):Lua脚本语言介绍,包括了Lua教程(一):Lua脚本语言介绍的使用技巧和注意事项,需要的朋友参考一下 Lua 是一个扩展式程序设计语言,它被设计成支持通用的过程式编程,并有相关数据描述的设施。 Lua 也能对面向对象编程,函数式编程,数据驱动式编程提供很好的支持。 它可以作为一个强大、轻量的脚本语言,供任何需要的程序使用。 Lua 以一个用 clean C 写成的
Java 是一种高级的编程语言,它最初是由 Sun 公司开发并于 1995 年公开发布的。Java 可以在不同的平台上运行,例如:Windows,Mac OS 和不同版本的 Unix。本指南将让你对 Java 有一个彻底的认识与了解。
这不意味着 Electron 是绑定了 GUI 库的 JavaScript。相反,Electron 使用 web 页面作为它的 GUI,所以你能把它看作成一个被 JavaScript 控制的,精简版的 Chromium 浏览器。 主进程 在 Electron 里,运行 里 main 脚本的进程被称为主进程。在主进程运行的脚本可以以创建 web 页面的形式展示 GUI。 由于 Electron 使用
Move is a new programming language developed to provide a safe and programmable foundation for the Libra Blockchain. An account in the Libra Blockchain is a container for an arbitrary number of Move r
本文向大家介绍docker快速入门教程,包括了docker快速入门教程的使用技巧和注意事项,需要的朋友参考一下 10分钟教会大家如何玩转Docker,这是 1、前言 进入云计算的时代,各大云提供商AWS,阿里云纷纷推出针对Docker的服务,现在Docker是十分火爆,那么Docker到底是什麽,让我们来体验一下。 2、Docker是什麽 Docker是一个开源的应用容器引擎,可以把应用以及依赖包