Lua进阶

Posted 两片空白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lua进阶相关的知识,希望对你有一定的参考价值。

前言

        学会文档查询:官方文档链接——Lua 5.3 参考手册 - 目录

多文件调用

        使用require关键字:

  • 运行指定的文件名。
  • 末尾不带扩展名。
  • 目录层级用'.'分隔。

  • 只会运行一次。
  • 会将调用的返回值返回。

  • 调用的文件从package.path路径中查找。

一般require是用来调用外部库文件的,一般不需要多次调用。

 迭代器

作用是用来遍历出table中所有的值。

一般table的迭代:

 迭代器有两种:

  • ipairs

        ipairs适用于带数字且连续下标的table。

         如果遇到了不连续的数字下标的table,遇到table中没有的数字下标,我们直到返回的nil,此时,ipairs就会停止遍历。

  •  pairs

适用于字符串下标的和不连续的数字下标。

 pairs内部调用的是next函数。

next()函数,会返回传入table值的下一个值,pairs里记录了获取到的值。

 用next也可以快速判断一个table是否为空。

string

lua中string的特点

  • 字符串的存储结构。

        在lua中字符串的存储结构相当于C++中的vector<char>的形式。一个字符一个字符保存在数组中。实际保存的是字符的字节码。

  •  可以保存任意字符的字符串,范围是0x00~0xff,包括不可见字符。特殊的是0x00,在c语言中是以'0'字符结尾,后面的字符就丢失了。在lua中不会,因为里面记录了字符的个数,

  •  字符串有序号,保存正序号和负序号。

正序号,起始位置1开始,后面依次增加。负序号,末尾-1开始,前面依次减少。

 string的接口

  • string.byte (s [, i [, j]])

    返回字符 s[i], s[i+1], ... ,s[j] 的内部数字编码。 i 的默认值是 1 ; j 的默认值是 i

  •  string.char (···)
    接收零或更多的整数。 返回和参数数量相同长度的字符串。 其中每个字符的内部编码值等于对应的参数值。

  •  string.format (formatstring, ···)返回不定数量参数的格式化版本, 格式化串为第一个参数(必须是一个字符串)。和c语言的printf是用没区别。

  •  string.lower (s)
    接收一个字符串,将其中的大写字符都转为小写后返回其副本。 其它的字符串不会更改。 对大写字符的定义取决于当前的区域设置。

 

以上是关于Lua进阶的主要内容,如果未能解决你的问题,请参考以下文章

Lua脚本语言——进阶语法

Lua进阶

Redis进阶应用:Redis+Lua脚本实现复合操作

Redis进阶学习08--多级缓存

Python--列表·进阶使用

Java进阶 - 数据结构ListSetCollections工具类