特点:

  设计目标:能与C语言或其他常用语言相互集成。这样做可以带来很多好处。

  1、简单

  因为它不需要去做其他语言已经做的很好的方面。

  而Lua提供的特性则是C语言不太擅长的:

  Lua提供了:

  1. 一套自动内存管理机制:不用管分配内存、释放内存、内存溢出等。
  2. 优秀的字符串处理能力
  3. 动态大小数据的处理能力:动态类型,支持多态
  4. 高级函数和匿名函数:允许更高层的参数化,能使函数变得更加通用

  2、可扩展性  语言特性体现了:自动内存管理、高级函数和匿名函数

  3、“胶水语言”  基于组件的开发:可以通过黏合现在的高层组件来创建新的应用程序  这些组件可以是已编译好的,也可以是静态类型语言(C、C++)编写的。  Lua则可以成为组织和连接各种组件的胶水。

  ● 有很多脚本语言,但是Lua提供了一组特性,使它与众不同,成为解决许多问题的首选语言:

  1. 可扩展性:既可用Lua代码来扩展,又可以用外部的C代码来扩展。
  2. Lua的大部分基础功能就是通过外部库实现的)。可以集成到C/C++、JavaC#等语言中。
  3. 简易性:简单、小巧。概念不多,但每个概念都很有用。易于学习。
  4. 高效:脚本(解释型)语言中最快的语言之一。
  5. 可移植性:可运行在任何平台上。编译只依赖于ANSIISOC标准

  

● 标识符可以是字母、数字和下划线,但不能以数字开头

  1. 避免用下划线跟着一个或多个大写字母
  2. 一个下划线作为“哑变量”使用
  3. 区分大小写
  4. 不能是保留字

● 单行注释

  1. --

● 块注释

● 全局变量

  1. 不需要声明。只需将一个值赋予一个全局变量就可以创建了。
  2. 例如:
  3. print(b) --> nil 访问一个未初始化的变量不会引发错误,访问结果是一个特殊的值nil
  4. b = 10
  5. print(b) --> nil 如果存在一个全局变量,那么它必定具有一个非nil的值。

  

  

  

Lua环境配置

  1. www.lua.org

  ● Mac终端安装:

  1. make macosx
  2. sudo make install
  3. lua -v (测试是否安装成功)

    ● Windows下源码编译新建VC++解决方案,在该解决方案下建3个项目,分别是lua库项目,lua编译器项目,lua解释器项目。

  1. 1). lua库项目:Lua53
  2. 选择Dll和空项目。
  3. 编译模式改成release模式
  4. 把源码中src目录下的所有.h文件拷贝到项目中的头文件节点下
  5. 把源码中src目录下的除了lua.cluac.c所有.c文件加入工程下的源文件目录
  6. 然后设置项目属性,更改项目编译库类型为 静态库(.lib)
  7. 最后编译运行,在项目文件夹release目录下产生了Lua53.lib文件,即lua库生成成功。
  8. 2). lua编译器项目:Luac
  9. 选择控制台应用程序和空项目
  10. 编译模式改成release模式
  11. 把源码中src目录下的所有.h文件拷贝到项目中的头文件节点下
  12. 把源码中src目录下的除了lua.c所有.c文件加入工程下的源文件目录
  13. 然后设置项目属性,更改项目编译库类型为 应用程序(.exe
  14. 最后编译运行,在项目文件夹release目录下产生了Luac.exe文件,即lua编译器文件生成成功。
  15. 3). lua解释器项目:Lua
  16. 步骤同建编译器项目,区别是添加src源文件时,不添加luac.c文件。
  17. 编译完成后release目录下多了一个lua.exe文件。即lua解释器文件生成成功。
  18. 4). 把编译好的release目录下的文件拷贝到 C:/Program Files (x86)/Lua5.3 目录下,并修改环境变量,把此路径添加进去。

  ● sublime 设置:

  方法1:

  方法2:

  1. 在控制台输入以下代码:
  1. import urllib.request,os,hashlib; h = 'df21e130d211cfc94d9b0905775a7c0f' + '1e3d39e33b79698005270310898eea76'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

  

  ● Sublime Text2 可选插件安装:

  1. Tools -> Command Palette ...
  2. 输入:
  3. install package
  4. JsFormat
  5. install package
  6. LuaJumpDefinition
  7. install package
  8. Tariling Spaces
  9. install package
  10. Terminal
  11. install package
  12. Fix Mac Path
  13. install package
  14. FormatLua
  15. install package
  16. LuaExtended

    ● 运行:

  1. F7

?