【Lua学习笔记10】Lua中的经常使用标准库介绍

经常使用标准库介绍

这篇文章主要来介绍lua中的一些经常使用的标准库,有下面几个:html

  • lua中的内置的一些基本函数
  • 字符串处理的库
  • 操做系统库

lua中的内置基本函数

print

第一个确定是print啦,由于咱们以前的文章中出现最多的估计就是这个函数了,咱们看下这个函数的用法。函数

print(...)
复制代码

print函数是能够接收任意个数的参数,将全部的参数转化为string输出。ui

tonumber

将给定的参数转为number类型的方法。lua

tonumber(num [, base])
复制代码

这个函数有一个可选的参数,就是数字的基数,好比咱们常说的2进制,8进制,10进制等。spa

先来看几个例子:操作系统

print(tonumber(1)) --> 1
print(tonumber('1')) --> 1
print(tonumber('a')) --> nil
print(tonumber('1', 10))  --> 1
print(tonumber(1, 10))  --> 1
print(tonumber(16, 8))  --> 8进制的16换成10进制的结果就是14
复制代码

tostring

将给定的任意类型的参数转化为string。code

tostring({a=1})  --> table: 0x7f8e4ae02420
tostring(1) --> 1
复制代码

不过能够看到这个基本上对于table没有什么做用,由于输出的是table的内存地址,根本看不出里面有什么内容。htm

那怎么办呢?能够经过前面文章将的metatable来指定table的__tostring方法,当将table转化为string的时候,若是table的metatable中有定义__tostring方法,那就会调用这个方法,而后将这个方法的返回值做为结果输出,咱们看个例子:ip

a = {'a', 'b', 'c'}
setmetatable(a, {
    __tostring = function(table)
        local result = ''
        for k,v in ipairs(table) do
            result = result .. k .. v .. '\n'
        end
        return result;
    end
})
print(a)
-- 1a
-- 2b
-- 3c
复制代码

assert

assert(断言)函数咱们在错误处理的时候用过。内存

assert(v [,message])
复制代码

这个函数当v为假(nil或者false)的时候,返回一个错误,message中的值为错误内容。若是message是没有传入,则默认为“assertion failed!”

type

type函数用来返回参数的类型字符串。

print(type(1)) --> number
print(type('1')) --> string
print(type(false)) --> boolean
print(type({a=1})) --> table
print(type(function() return 1 end)) --> function
print(type(nil)) --> nil
复制代码

select

select函数用于可变参数中,在以前讲函数部分的可变参数的时候用过。

select(index, ...)
复制代码

若是index为数字,则select返回可变参数的第n个参数的值,若是index是负数,则返回倒数的第index个参数的值,注意,若是index是0或者大于0的数字,就算index超过了传入的参数个数,也不会报错,可是若是是负数,则会报'select' (index out of range)错误。

若是index不是数字,那么只能是字符串“#”,表示获取可变参数的个数。

ipairs

ipairs用来遍历table中的数据。

for k,v in ipairs(t) do body end
复制代码

例子:

function list(table)
    for k,v in ipairs(table) do
        print(k .. v)
    end
end
list({'a', 'b'})
复制代码

这里就介绍这么几个经常使用的内置函数,更多的内置函数参考: www.lua.org/manual/5.3/…

相关文章
相关标签/搜索