lua字符串转数组_Lua语言简介

Lua是一种轻量级的脚本语言,适用于游戏开发、独立应用和Web应用脚本。它强调可扩展性,拥有丰富的标准库和活跃的社区支持。通过其面向过程和函数式编程特性,Lua提供了灵活的扩展和定制功能。官方参考手册和书籍《Lua编程》是学习Lua的重要资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

01a7c9402aa2ca753616a7fc7192f678.png

欢迎!

Lua是一种强大而快速的编程语言,易于学习和使用,并嵌入到您的应用程序中。

Lua旨在成为一种轻量级可嵌入脚本语言。它用于 各种应用程序,从游戏到Web应用程序和图像处理。

有关详细信息以及选择Lua的原因,请参阅 about页面。

了解Lua程序在现场演示中的外观和感觉 。

学习

f602705e41bebfe08a34cbbfd3348ce4.png
LUA编程入门书籍

开始学习Lua的好地方是“Lua 编程 ”一书 ,有 平装本和 电子书。第一版可在线免费获取。另见 本书的课程笔记。

Lua语言的官方定义在参考手册中给出 。

有关更多信息,请参阅 文档页面和 Wiki 。

获得帮助

我们的 社区 很友好,如果您需要,很可能会帮助您。只需访问邮件列表,聊天室和 stackoverflow。

如果您需要葡萄牙语帮助,请加入 Lua BR邮件列表并访问pt.stackoverflow。

另请参阅 常见问题解答,社区维护的 wiki 和 LuaFaq,以及更长的 uFAQ。

工具

如果您需要补充标准的Lua库来处理更复杂的任务,请访问 Lua模块的主要存储库LuaRocks。另请参阅 Awesome Lua,精选Lua软件包和资源的精选列表。在 LUA用户维基 列出了许多 用户贡献的插件 为lua。

安装

如果您不想在计算机上安装任何内容,请 使用 现场演示与Lua一起玩。

要在您的计算机上运行Lua程序,您需要一个独立的Lua解释器以及一些额外的Lua库。使用您喜欢的文本编辑器编写您的Lua程序。确保将程序保存为纯文本。如果您想要IDE,请尝试使用 ZeroBrane Studio。

如果您使用Windows,请尝试 LuaDist,这是包含电池的Lua的多平台分发版。

如果您使用Linux或Mac OS X,Lua已经安装在您的系统上,或者有一个Lua软件包。确保您获得最新版本的Lua(目前为5.​​3.5)。

如下所述,Lua也很容易从源代码构建。

从源头构建

Lua很容易构建和安装。只需下载并按照 包中的 说明进行操作即可。

这是一个简单的终端会话,它下载Lua的当前版本并在Linux系统中构建它:

curl -R -O http://www.lua.org/ftp/lua-5.3.5.tar.gz
tar zxf lua-5.3.5.tar.gz
cd lua-5.3.5
做linux测试

对于Mac OS X,请使用make macosx test。如果你没有卷曲,试试wget。

如果您使用的是Windows,并希望从源代码编译Lua中,有 详细的说明 在 维基。

嵌入

要将Lua嵌入到C或C ++程序中,您需要使用Lua头来编译程序,并使用Lua库来链接它。如果您正在为您的平台获得现成的Lua软件包,那么您可能也需要开发软件包。否则,只需 下载 Lua并将其源目录添加到您的项目中。

总结

Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。

Lua 是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组于 1993 年开发的,该小组成员有:Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo。

其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。

  • 轻量级: 它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。
  • 可扩展: Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。
  • 其它特性:
    • 支持面向过程(procedure-oriented)编程和函数式编程(functional programming);
    • 自动内存管理;只提供了一种通用类型的表(table),用它可以实现数组,哈希表,集合,对象;
    • 语言内置模式匹配;闭包(closure);函数也可以看做一个值;提供多线程(协同进程,并非操作系统所支持的线程)支持;
    • 通过闭包和table可以很方便地支持面向对象编程所需要的一些关键机制,比如数据抽象,虚函数,继承和重载等。

非常活跃于如下领域:

  • 游戏开发
  • 独立应用脚本
  • Web 应用脚本
  • 扩展和数据库插件如:MySQL Proxy 和 MySQL WorkBench
  • 安全系统,如入侵检测系统

LUA官方编程API

62c8ab1c2ebc2a115f9c14f9ea378510.png

Lua编程(第一版)

内容 · 勘误 · 代码 · 手册 · 较新版本

这是Lua编程第一版的在线版本,是 Lua首席架构师编写的Lua编程各方面的详细和权威的介绍。勘误表中列出的所有更正 均已在在线版本中进行。

a1d0861244c28effc21f0df197c79939.png

Lua编程,作者:Roberto Ierusalimschy

http://Lua.org,2003年12月

ISBN 8590379817

第一版针对的是 Lua 5.0, 并且仍然具有很大的相关性。

如果你觉得这个在线版本有用,请考虑 购买一个副本 的的 最新版本。这有助于 支持Lua项目。

版权所有©2003-2004 Roberto Ierusalimschy。版权所有。
此在线图书仅供个人使用。它不能复制到其他网站或以任何形式进一步分发。

内容

  • 覆盖
  • 前言
  • 听众
  • 其他资源
  • 一些印刷约定
  • 关于这本书
  • 致谢
  • 第一部分·语言
  • 1 - 入门
    • 1.1 - 大块
    • 1.2 - 全局变量
    • 1.3 - 一些词汇约定
    • 1.4 - 独立翻译
  • 2 - 类型和值
    • 2.1 - 无
    • 2.2 - 布尔
    • 2.3 - 数字
    • 2.4 - 字符串
    • 2.5 - 表格
    • 2.6 - 功能
    • 2.7 - 用户数据和线程
  • 3 - 表达
    • 3.1 - 算术运算符
    • 3.2 - 关系运算符
    • 3.3 - 逻辑运算符
    • 3.4 - 连接
    • 3.5 - 优先顺序
    • 3.6 - 表构造函数
  • 4 - 声明
    • 4.1 - 作业
    • 4.2 - 局部变量和块
    • 4.3 - 控制结构
      • "https://http://www.lua.org/pil/4.3.1.html">4.3.1 - 如果 然后 其他人
      • "https://www.lua.org/pil/4.3.2.html">4.3.2 - 同时
      • "https://www.lua.org/pil/4.3.3.html">4.3.3 - 重复
      • 4.3.4 -数字为
      • 4.3.5 -通用的
    • f="https://whttp://ww.lua.org/pil/4.4.html">4.4 - 打破(Break)并返回
  • 5 - 功能
    • 5.1 - 多重结果
    • 5.2 - 可变数量的参数
    • 5.3 - 命名参数
  • 6 - 有关功能的更多信息
    • 6.1 - 关闭
    • 6.2 - 非全局函数
    • 6.3 - 正确的尾巴呼叫
  • 7 -迭代器和通用的
    • 7.1 - 迭代器和闭包
    • 7.2 -通用的语义为
    • 7.3 - 无状态迭代器
    • 7.4 - 具有复状态的迭代器
    • 7.5 - 真正的迭代器
  • 8 - 编译,执行和错误
    • f="https://www.lua.org/pil/8.1.html">8.1 - require功能
    • 8.2 - C包
    • 8.3 - 错误
    • 8.4 - 错误处理和异常
    • 8.5 - 错误消息和回溯
  • 9 - 协同程序
    • 9.1 - 协同基础知识
    • 9.2 - 管道和过滤器
    • 9.3 - 作为迭代器的协同程序
    • 9.4 - 非抢先式多线程
  • 10 - 完整的例子
    • 10.1 - 数据描述
    • 10.2 - 马尔可夫链算法
  • 第二部分·表和对象
  • 11 - 数据结构
    • 11.1 - 数组
    • 11.2 - 矩阵和多维数组
    • 11.3 - 链接列表
    • 11.4 - 队列和双重队列
    • 11.5 - 套装和包包
    • 11.6 - 字符串缓冲区
  • 12 - 数据文件和持久性
    • 12.1 - 序列化
      • 12.1.1 - 保存没有循环的表
      • 12.1.2 - 使用循环保存表
  • 13 - Metatables和Metamethods
    • 13.1 - 算术方法
    • 13.2 - 关系式方法
    • 13.3 - 图书馆定义的Metamethods
    • 13.4 - 表访问Metamethods
      • 13.4.1 - __indexMetamethod
      • 13.4.2 - __newindexMetamethod
      • 13.4.3 - 具有默认值的表
      • 13.4.4 - 跟踪表访问
      • 13.4.5 - 只读表
  • 14 - 环境
    • 14.1 - 使用动态名称访问全局变量
    • 14.2 - 声明全局变量
    • 14.3 - 非全球环境
  • 15 - 包裹
    • 15.1 - 基本方法
    • 15.2 - 隐私
    • 15.3 - 包和文件
    • 15.4 - 使用全局表
    • 15.5 - 其他设施
  • 16 - 面向对象的编程
    • 16.1 - 课程
    • 16.2 - 继承
    • 16.3 - 多重继承
    • 16.4 - 隐私
    • 16.5 - 单一方法
  • 17 - 弱表
    • 17.1 - 记忆功能
    • 17.2 - 对象属性
    • 17.3 - 使用默认值重新访问表
  • 第三部分·标准库
  • 18 - 数学图书馆
  • 19 - 表库
    • 19.1 - 数组大小
    • 19.2 - 插入和删除
    • 19.3 - 排序
  • 20 - 字符串库
    • 20.1 - 模式匹配函数
    • 20.2 - 模式
    • 20.3 - 捕获
    • 20.4 - 交易诀窍
  • 21 - I / O库
    • 21.1 - 简单I / O模型
    • 21.2 - 完整的I / O模型
      • 21.2.1 - 小型表演技巧
      • 21.2.2 - 二进制文件
    • 21.3 - 文件的其他操作
  • 22 - 操作系统库
    • 22.1 - 日期和时间
    • 22.2 - 其他系统调用
  • 23 - 调试库
    • 23.1 - 内省设施
      • 23.1.1 - 访问局部变量
      • 23.1.2 - 访问Upvalues
    • 23.2 - 钩子
    • 23.3 - 简介
  • 第四部分·C API
  • 24 - C API概述
    • 24.1 - 第一个例子
    • 24.2 - 堆栈
      • 24.2.1 - 推动元素
      • 24.2.2 - 查询元素
      • 24.2.3 - 其他堆栈操作
    • 24.3 - 使用C API进行错误处理
      • 24.3.1 - 应用程序代码中的错误处理
      • 24.3.2 - 库代码中的错误处理
  • 25 - 扩展您的申请
    • 25.1 - 表操作
    • 25.2 - 调用Lua函数
    • 25.3 - 通用呼叫功能
  • 26 - 从Lua打电话给C
    • 26.1 - C函数
    • 26.2 - C库
  • 27 - 编写C函数的技巧
    • 27.1 - 数组操作
    • 27.2 - 字符串操作
    • 27.3 - 在C函数中存储状态
      • 27.3.1 - 书记官处
      • 27.3.2 - 参考文献
      • 27.3.3 - 升值
  • 28 - C中的用户定义类型
    • 28.1 - 用户数据
    • 28.2 - Metatables
    • 28.3 - 面向对象的访问
    • 28.4 - 阵列访问
    • 28.5 - 轻用户数据
  • 29 - 管理资源
    • 29.1 - 目录迭代器
    • 29.2 - XML解析器

最后更新:周六7月28日14:07:44 -03 2018

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值