`
shutiao2008
  • 浏览: 211909 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

lua入门

    博客分类:
  • lua
阅读更多
1 起步

按照传统,我们首先用Lua实现一个”Hello World”程序:
#

print("Hello World")
如果你使用的是独立的Lua解释器,则运行程序的方法很简单:你只需将你的程序文件名传给解释器(通常名为lua)。比如,如果你将上面这个程序写入到一个名为hello.lua的文本文件中,然后通过如下命令行启动它:
#

prompt> lua hello.lua
下面是一个稍微复杂一点的例子,下面这个程序定义了一个函数来计算阶乘。它让用户输入一个数字,然后打印出它的阶乘。
#

-- defines a factorial function
#

function fact (n)
#

  if n == 0 then
#

    return 1
#

  else
#

    return n * fact(n-1)
#

  end
#

end
#

print("enter a number:")
#

a = io.read("*number")        -- 读入一个数字
#

print(fact(a))
如果你将Lua嵌入到一个应用程序中运行,比如CGILua 或者 IUPLua,你需要读一下相关的手册(或请教一下能人)去了解如果运行你的程序。不过,Lua还是Lua,无论以哪种方法使用,我们在这里看到的大多数东西都还是有效的。我们推荐你使用独立的Lua解释器(一个名为lua的程序)来运行你的第一个练习程序。

1.1 程序块

Lua执行的每一段代码,比如一个文件甚至交互模式下的一行指令,都可以称为是一个“程序块”。简单来说,“程序块”就是一组语句序列。

语句的结尾加分号的写法是可选的。一般来说,我只是在把多个Lua语句写在同一行的时候,才用分号间隔,当然,这是一个习惯问题。换行符同样可以用来分隔语句。举例来说,下面这四种写法都是正确的,而且等效。
#

a = 1
#

b = a*2
#

a = 1;
#

b = a*2;
#

a = 1 ; b = a*2
#

a = 1  b = a*2    -- 不推荐这种写法,不过确实可以这样写。
程序块可以简单到只有一条语句,像那个”Hello world”的例子,也可以是一组语句和函数的混合体,像前面的求阶乘的例子。你想让一个程序块有多大,它就可以有多大。因为Lua也被用作是一种“描述数据的语言”,所以,几兆字节尺寸的程序块并不鲜见。Lua解释器处理这些毫无问题。
除了将你的程序写进一个文件以外,你还可以使用Lua解释器提供的交互模式。如果你启动lua时不带任何参数,你就会看到这样的提示符:

#


Lua 5.0  Copyright (C) 1994-2003 Tecgraf, PUC-Rio
#

>
然后,你键入的任何指令(比如 print “Hello World”)会在你按下回车后被立即执行。如果想离开交互模式的解释器,只需要键入一个“文件结束符”(在Unix系统中是Ctrl- D,DOS/Windows中是Ctrl-z),或者调用OS库的退出函数(键入:os.exit() )
在交互模式下,Lua一般将每一行都看作是一个程序块。但是,如果它检测到这一行无法构成一个完整的程序块,它就会等待进一步的输入,直到其构成了完整的程序块。当Lua等待进一步的输入时,它会显示一个不同的提示符(一般是>>)。因此,你可以直接在交互模式下输入多行的定义式,就像那个求阶乘的factorial函数。当然,在一些情况下,将这些程序写入文件,再用Lua执行这个文件更方便一些。

你可以让通过 –l 参数让Lua解释器顺序地执行一组脚本程序。举例来说,如果你有一个文件a,里面只有一条语句:x=1,你还有一个文件b,里面也只有一条语句:print(x),则命令
#

promt> lua –la –lb
会依次运行a和b,并打印出“1”。( -l 参数实际上调用了 require 函数,这个函数会查找指定路径下的文件。所以,在前面那个例子中,如果你不写明a和b的路径,就无法正常运行。我们将在8.1节详细讨论require函数)

你可以使用 –i 参数告诉Lua解释器在执行完指定文件后,进入交互模式。比如:
#

prompt> lua -i -la -lb

将先执行a中的程序块,然后执行
分享到:
评论

相关推荐

    Lua入门例子

    【标题】:“Lua入门例子”揭示了初学者如何着手学习并使用Lua编程语言。Lua是一种轻量级的脚本语言,常用于游戏开发、嵌入式系统和配置文件等场景。其简洁的语法和强大的功能使得它在各种领域内广受欢迎。 【描述...

    Lua入门相关7Lua入门相关7Lua入门相关7

    Lua入门相关7Lua入门相关7Lua入门相关7Lua入门相关7Lua入门相关7Lua入门相关7Lua入门相关7Lua入门相关7Lua入门相关7Lua入门相关7

    Lua入门相关8Lua入门相关8

    Lua入门相关8Lua入门相关8Lua入门相关8Lua入门相关8Lua入门相关8Lua入门相关8Lua入门相关8Lua入门相关8Lua入门相关8

    Lua入门相关6Lua入门相关6

    Lua入门相关6Lua入门相关6Lua入门相关6Lua入门相关6Lua入门相关6Lua入门相关6Lua入门相关6Lua入门相关6Lua入门相关6

    Lua入门相关2Lua入门相关2

    Lua入门相关2Lua入门相关2Lua入门相关2Lua入门相关2Lua入门相关2Lua入门相关2Lua入门相关2Lua入门相关2Lua入门相关2

    Lua入门相关12Lua入门相关12

    Lua入门相关12Lua入门相关12Lua入门相关12Lua入门相关12Lua入门相关12Lua入门相关12

    Lua入门相关5Lua入门相关5

    Lua入门相关5Lua入门相关5Lua入门相关5Lua入门相关5Lua入门相关5Lua入门相关5

    Lua入门相关3Lua入门相关3

    Lua入门相关3Lua入门相关3Lua入门相关3Lua入门相关3Lua入门相关3Lua入门相关3Lua入门相关3

    Lua入门相关11Lua入门相关11

    Lua入门相关11Lua入门相关11Lua入门相关11Lua入门相关11Lua入门相关11Lua入门相关11Lua入门相关11

    Lua入门相关13Lua入门相关13

    Lua入门相关13Lua入门相关13Lua入门相关13Lua入门相关13Lua入门相关13

    lua入门学习资料

    这份"lua入门学习资料"包含两本经典书籍《lua编程指南》和《lua程序设计》,以及一些简单的例程,将帮助你快速步入Lua的世界。 《lua编程指南》是一本很好的入门书籍,它详细介绍了Lua的基本语法和特性。在书中,你...

    lua入门到精通 安装程序

    lua入门到精通 安装程序,安装完后,包含有 lua源文件和编译器

    新Lua入门相关2新Lua入门相关2

    新Lua入门相关2新Lua入门相关2新Lua入门相关2新Lua入门相关2新Lua入门相关2新Lua入门相关2

    Lua入门教程.rar

    《Lua入门教程》这份资料,显然旨在帮助初学者掌握Lua的基础知识,以便于进入iOS开发的领域。以下是一些关键的Lua知识点: 1. **基础语法**:Lua具有简单的语法结构,包括变量声明(无类型限制)、条件语句(if-...

    lua入门教程配套实例代码

    通过这个"lua入门教程配套实例代码",你可以逐步学习并实践这些概念。每个实例都会针对某个特定主题,如变量、函数、控制结构等,帮助你巩固理解。记得在实践中不断调试和修改代码,这是提高编程技能的最佳方式。祝...

    Lua入门及脚本语言说明

    在“Lua入门”这个主题中,我们将深入探讨Lua的基本概念、语法特性以及它如何在实际项目中发挥作用。 首先,让我们了解Lua的核心概念。Lua是基于词法作用域的,这意味着变量的作用范围由它们被声明的位置决定,而...

    Lua入门用资料

    ### Lua入门知识点详解 #### 一、Lua简介与特点 Lua是一种轻量级且高效的脚本语言,广泛应用于游戏开发领域。它具有简洁的语法结构、丰富的数据类型以及灵活的编程方式等特点,使得开发者能够迅速地掌握并运用到...

    LUA入门整体了解教程

    ### LUA入门整体了解教程 #### 一、LUA语言简介 LUA是一种轻量级的脚本语言,因其简洁高效而被广泛应用于游戏开发、Web应用以及系统管理等多个领域。LUA的设计理念是为了让程序员能够轻松地将脚本集成到宿主应用...

    Lua入门示例

    **Lua入门示例** Lua是一种轻量级的脚本语言,常被用于游戏开发、配置文件、嵌入式系统等领域。在这个示例中,我们将探讨如何在C++项目中集成和使用Lua,以便利用它的强大功能。我们将使用Visual Studio 2008作为...

    Lua 入门经典

    Lua 入门经典 Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。[2] 一个完整的Lua解释器不过200k,在目前所有脚本引擎中,Lua的速度是最快的。这一切都决定了Lua是作为嵌入式脚本的...

Global site tag (gtag.js) - Google Analytics