Lua程序设计语言入门学习

移动开发 iOS
Lua是一种多重编程范式的程式设计语言:它只提供了很小的一个特性集合来满足不同编辑范式的需要,而不是为某种特定的编辑范式提供繁杂的特性支援。

Lua程序设计语言入门学习是本文要介绍的内容,主要是了解LUA脚本语言,很适合初学者来使用,Lua程序设计语言 是一个简洁、轻量、可扩展的脚本语言Lua读作/'lua/(噜啊),是葡萄牙语中"Luna"(月亮)的意思。

Lua的目标是成为一个很容易嵌入其它语言中使用的语言。大多数程序员也认为它的确做到了这一点。

很多应用程序使用Lua作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。这其中包括大话西游II、仙境传说、魔兽世界、战锤40k、博德之门、轩辕剑外传汉之云等。

Lua是一种轻量语言,它的官方版本只包括一个精简的核心和最基本的库。这使得Lua体积小、启动速度快。它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程式里。和许多"大而全"的语言不一样,网路通讯、图形界面等都没有默认提供。但是Lua可以很容易地被扩展:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。事实上,现在已经有很多成熟的扩展模块可供选用。

Lua是一种多重编程范式的程式设计语言:它只提供了很小的一个特性集合来满足不同编辑范式的需要,而不是为某种特定的编辑范式提供繁杂的特性支援。例如,Lua并不提供继承这个特性,但是你可以用元表来模拟它。

诸如名字空间、类这些概念都没有在语言基本特性中实现,但是我们可以轻易的用表结构(Lua唯一提供的复杂数据结构)轻易模拟。Lua可以在运行时随时构造出一个函数,并把它看作一个对象(正是所谓的first class function),这个特性可以很好的满足函数式编程的需要。这是提供了这些基本的元特性,我们可以任意的对语言进行自需的改造。

Lua原生支援的数据类型非常之少,它只提供了 数字(缺省是双精度浮点数,可配置)、布尔量、字符串、表、子程序、协程(coroutine)以及用户自定义数据这几种。但是其处理表和字符串的效率非常之高,加上元表的支援,我们可以高效的模拟出需要的复杂数据类型(比如集合、数组等)。

Lua是一个动态弱类型语言,支援增量式垃圾收集策略。有内建的,与操作系统无关的协作式多线程(coroutine)支援。

程式范例print "Hello, world!"

执行后,会在屏幕上显示"Hello, world!"(不包括前后的")。

一个比较复杂一点的例子,展示了什么是函数,以及Lua对闭包的支持:

  1. function create_a_counter()  
  2.     local count = 0 
  3.     return function()  
  4.         countcount = count + 1  
  5.         return count  
  6.     end  
  7. end 

create_a_counter()会返回一个匿名函数(在Lua中,函数和其他资料一样,是可以指定给变量来储存的)。这个匿名函数会把count加1后再回传。在匿名函数中的变量count既不是全域变量也不是区域变量,而是一种称为external local variable(外部局部变量,又称upvalue)的变量。这个变量的值会一直被保存在匿名函数中。因此create_a_counter()的功能就相当于一个记数器,每次调用这个记数器,都会得到一个比上次大1的值。

类型lua 是动态类型语言,语言中没有类型的定义,也就是写代码时不需要声明变量类型,每个变量自己保存了类型。

有8种基本类型:

  1. nil, boolean, number, string, userdata, function, thread, table 
  1. print(type("Hello world"))  > string  
  2. print(type(10.4*3))         > number  
  3. print(type(print))          > function  
  4. print(type(type))           > function  
  5. print(type(true))           > boolean  
  6. print(type(nil))            > nil  
  7. print(type(type(X)))        > string 

可以看到,***一句代码的输出结果是 string,不管 X 代表什么,结果总是 string ,因为type()函数的返回值是 string 类型。

小结:Lua程序设计语言入门学习的内容介绍完了,希望通过本文的学习能对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-08-22 17:41:23

LUA 脚本 语言

2011-04-25 13:31:51

Objeck

2010-01-08 16:10:59

C++语言

2015-05-18 15:08:08

多种程序设计语言程序设计语言

2013-12-12 16:30:20

Lua脚本语言

2011-08-25 14:43:55

LUA对象序列化

2011-08-22 16:59:28

Lua

2011-08-25 10:40:21

Lua游戏

2011-09-01 19:06:57

UbuntuLua安装环境

2009-06-22 14:03:00

java教材程序设计

2011-08-22 18:08:09

Lua脚本

2010-08-09 09:20:51

Flex程序设计

2011-07-04 13:31:15

2012-04-16 09:50:08

2011-06-09 09:52:41

F#

2023-03-06 16:44:41

编程语言开发编码

2010-01-18 16:12:16

CC++语言

2010-01-11 10:34:22

C++程序

2020-03-19 09:00:00

泛型代码复用率程序运行性能

2010-01-22 10:26:40

C++语言
点赞
收藏

51CTO技术栈公众号