zoukankan      html  css  js  c++  java
  • Lua的API函数

    1. 基础库

    我们在整个教程中使用了各种主题下的基本库。 下表提供了相关页面的链接,并列出了本Lua教程各部分所涵盖的功能。

    编号

    库/方法

    作用

    1

    错误处理

    包括错误处理函数,如断言, 错误,如Lua错误处理中所述。

    2

    内存管理

    包括与垃圾收集相关的自动内存管理功能, 如Lua垃圾收集中所述。

    3

    dofile ([filename])

    它打开文件并以块的形式执行文件的内容。

    4

    _G

    因此是保存全局环境的全局变量(即_G._G = _G)。

    5

    getfenv ([f])

    返回函数使用的当前环境。

    6

    getmetatable (object)

    如果object没有metatable, 则返回nil。 否则,如果objectmetatable具有__metatable字段,

    7

    ipairs (t)

    此函数获取表的索引和值。

    8

    load (func [, chunkname])

    使用函数func加载一个块来获取它的碎片。

    9

    loadfile ([filename]))

    load类似,但是如果没有给出文件名,则从文件filename或标准输入中获取块。

    10

    loadstring (string [, chunkname])

    load函数类似,但从给定的字符串中获取块。

    11

    next (table [, index])

    允许程序遍历表的所有字段。

    12

    pairs (t)

    暂停正在运行的协同程序。

    13

    print (...)

    打印给定的参数值。

    14

    rawequal (v1, v2)

    检查v1是否等于v2,而不调用任何无方法。 返回一个布尔值。

    15

    rawget (table, index)

    获取table [index]的值, 而不调用任何方法。table必须是表; index可以是任何值。

    16

    rawset (table, index, value)

    table [index]的值设置为value,而不调用任何方法。

    17

    select (index, ...)

    如果index是数字,则返回参数编号索引后的所有参数。

    18

    setfenv (f, table)

    设置给定函数使用的环境。

    19

    setmetatable (table, metatable)

    设置给定表的元表。

    20

    tonumber (e [, base])

    尝试将参数转换为数字。

    21

    tostring (e)

    接收任何类型的参数并将其转换为合理格式的字符串。

    22

    type (v)

    返回唯一参数的类型,编码为字符串。

    23

    unpack (list [, i [, j]])

    返回给定表中的元素。

    24

    _VERSION

    包含当前解释器版本的字符串的全局变量(不是函数)。

    25

    协同程序

    包括Lua协同程序中解释的协程操作功能。

    2. Lua数学库

    编号

    库或方法

    描述

    1

    math.abs(x)

    返回x的绝对值。

    2

    math.acos(x)

    返回x的弧余弦值(以弧度表示)。

    3

    math.asin(x)

    返回x的弧正弦(以弧度表示)。

    4

    math.atan(x)

    返回x的反正切(以弧度表示)。

    5

    math.atan2(y,x)

    返回y / x的反正切(以弧度表示),但使用两个参数的符号来查找结果的象限(它也正确处理x为零的情况。)

    6

    math.ceil(x)

    返回大于或等于x的最小整数。

    7

    math.cos(x)

    返回x的余弦值(假设为弧度)。

    8

    math.cosh(x)

    返回x的双曲余弦值。

    9

    math.deg(x)

    以度为单位返回角度x(以弧度表示)。

    10

    math.exp(x)

    返回值ex次幂。

    11

    math.floor(x)

    返回小于或等于x的最大整数。

    12

    math.fmod(x,y)

    返回x除以y的余数,将商舍入为零。

    13

    math.frexp(x)

    返回me,使得x = m2ee是整数,m的绝对值在[0.5,1]范围内(或者当x为零时为零)。

    14

    math.huge

    HUGE_VAL值是一个大于或等于任何其他数值的值。

    15

    math.ldexp(m, e)

    返回m2e(e是一个整数)。

    16

    math.log(x)

    返回x的自然对数。

    17

    math.log10(x)

    返回x的以10为底的对数。

    18

    math.max(x,...)

    返回参数中的最大值。

    19

    math.min(x,...)

    返回参数中的最小值。

    20

    math.modf(x)

    返回两个数字,x的整数部分和x的小数部分。

    21

    math.pi

    pi的值。

    22

    math.pow(x,y)

    返回xy方。(也可以使用表达式x ^ y来计算此值。)

    23

    math.rad(x)

    以弧度为单位返回角度x(以度为单位)。

    24

    math.random([m [, n]])

    此函数是ANSI C提供的简单伪随机生成器函数rand的接口。

    25

    math.randomseed(x)

    x设置为伪随机生成器的“种子”:相等的种子产生相等的数字序列。

    26

    math.sin(x)

    返回x的正弦值(假设为弧度)。

    27

    math.sinh(x)

    返回x的双曲正弦值。

    28

    math.sqrt(x)

    返回x的平方根。(也可以使用表达式x ^ 0.5来计算此值。)

    29

    math.tan(x)

    返回x的正切(假设为弧度)。

    30

    math.tanh(x)

    返回x的双曲正切值。

    三角函数

    使用三角函数的简单示例如下所示-

    radianVal = math.rad(math.pi / 2)
     
    io.write(radianVal,"
    ")
    -- Sin value of 90(math.pi / 2) degrees
    io.write(string.format("%.1f ", math.sin(radianVal)),"
    ")
    -- Cos value of 90(math.pi / 2) degrees
    io.write(string.format("%.1f ", math.cos(radianVal)),"
    ")
    -- Tan value of 90(math.pi / 2) degrees
    io.write(string.format("%.1f ", math.tan(radianVal)),"
    ")
    -- Cosh value of 90(math.pi / 2) degrees
    io.write(string.format("%.1f ", math.cosh(radianVal)),"
    ")
    -- Pi Value in degrees
    io.write(math.deg(math.pi),"
    ")

     

    当运行上面的程序时,将得到以下输出 -

    0.0274155677808040.0 1.0 0.0 1.0 180

     

    其他常见的数学函数

    使用常见数学函数的简单示例如下所示-

    -- Floor
    io.write("Floor of 10.5055 is ", math.floor(10.5055),"
    ")
    -- Ceil
    io.write("Ceil of 10.5055 is ", math.ceil(10.5055),"
    ")
    -- Square root
    io.write("Square root of 16 is ",math.sqrt(16),"
    ")
    -- Power
    io.write("10 power 2 is ",math.pow(10,2),"
    ")
    io.write("100 power 0.5 is ",math.pow(100,0.5),"
    ")
    -- Absolute
    io.write("Absolute value of -10 is ",math.abs(-10),"
    ")
    --Random
    math.randomseed(os.time())
    io.write("Random number between 1 and 100 is ",math.random(),"
    ")
    --Random between 1 to 100
    io.write("Random number between 1 and 100 is ",math.random(1,100),"
    ")
    --Max
    io.write("Maximum in the input array is ",math.max(1,100,101,99,999),"
    ")
    --Min
    io.write("Minimum in the input array is ",math.min(1,100,101,99,999),"
    ")

     

    当运行上面的程序时,将得到以下输出 -

    Floor of 10.5055 is 10
    Ceil of 10.5055 is 11
    Square root of 16 is 4
    10 power 2 is 100
    100 power 0.5 is 10
    Absolute value of -10 is 10
    Random number between 1 and 100 is 0.22876674703207
    Random number between 1 and 100 is 7
    Maximum in the input array is 999
    Minimum in the input array is 1

     

    3. Lua操作系统工具

    编号

    库或方法

    描述

    1

    os.clock()

    返回程序使用的CPU时间(以秒为单位)的近似值。

    2

    os.date([format[, time]])

    返回包含日期和时间的字符串或表,根据给定的字符串格式进行格式化。

    3

    os.difftime(t2,t1)

    返回从时间t1到时间t2的秒数。在POSIX,Windows和其他一些系统中,恰好是t2-t1的值。

    4

    os.execute([command])

    此功能相当于ANSI C功能系统。 它传递要由操作系统shell执行的命令。 如果命令成功终止,则第一个结果为true,否则为nil

    5

    os.exit([code[, close])

    调用ANSI C函数出口以终止宿主程序。 如果codetrue,则返回状态为EXIT_SUCCESS; 如果codefalse,则返回状态为EXIT_FAILURE; 如果code是数字,则返回的状态是此数字。

    6

    os.getenv(varname)

    返回进程环境变量varname的值,如果未定义变量,则返回nil

    7

    os.remove(filename)

    使用给定名称删除文件(或POSIX系统上的空目录)。 如果此函数失败,则返回nil,以及描述错误和错误代码的字符串。

    8

    os.rename(oldname, newname)

    将名为oldname的文件或目录重命名为newname。 如果此函数失败,则返回nil,以及描述错误和错误代码的字符串。

    9

    os.setlocale(locale [,category])

    设置程序的当前区域设置。 locale是一个依赖于系统的字符串,用于指定语言环境; category是一个可选字符串,用于描述要更改的类别:allcollatectypecurrencynumerictime; 默认类别(category)是"all"。该函数返回新语言环境的名称,如果无法满足请求,则返回nil

    10

    os.time([table])

    返回不带参数调用的当前时间,或表示给定表指定的日期和时间的时间。 此表必须包含字段年,月和日,并且可能包含字段小时(默认值为12),分钟(默认值为0),秒(默认值为0)和isdst(默认值为nil)。 有关这些字段的说明,请参见os.date函数。

    11

    os.tmpname()

    返回一个文件名,该文件名可用于临时文件。 文件必须在使用前显式打开,并在不再需要时显式删除。

    常见的OS功能

    使用常见数学函数的简单示例如下所示 -

    -- Date with format
    io.write("The date is ", os.date("%m/%d/%Y"),"
    ")
    -- Date and time
    io.write("The date and time is ", os.date(),"
    ")
    -- Time
    io.write("The OS time is ", os.time(),"
    ")
    -- Wait for some timefor i=1,1000000 doend
    -- Time since Lua started
    io.write("Lua started before ", os.clock(),"
    ")

     

    当运行上面的程序时,将得到类似的输出如下 -

    The date is 01/25/2018
    The date and time is 01/25/18 07:38:40
    The OS time is 1490615720
    Lua started before 0.013

    上面的例子只是一些常见的例子,可根据自己的需要使用OS库,建议尝试使用所有的功能以便更加熟悉。像remove这样的函数有助于删除文件,执行有助于于执行OS命令。

    --------------------------------------------------

    转载于:https://www.yiibai.com/lua/lua_operating_system_facilities.html

  • 相关阅读:
    JBoss无规律自动关闭故障定位
    使用Js脚本 修改控制IE的注册表相关设置(activex等)
    EJB到底是什么,真的那么神秘吗??
    MyEclipse 8.5 优化实例
    ORACLE修改用户表所属表空间的步骤
    Ora-01536:超出了表空间users的空间限量(转)
    Houdini Python开发实战 课程笔记
    Houdini Mac 添加external editor
    Xcode 导出C++项目在其他电脑执行
    Xcode中opengl的配置
  • 原文地址:https://www.cnblogs.com/gd-luojialin/p/10962899.html
Copyright © 2011-2022 走看看