博客
关于我
lua入门之一函数
阅读量:800 次
发布时间:2023-02-06

本文共 1329 字,大约阅读时间需要 4 分钟。

Lua 编程实例与技巧

在编程实践中,Lua 作为一种轻量级脚本语言,常被用来处理自动化任务。以下是一些 Lua 的典型实例与技巧,帮助你更好地掌握这门语言。

函数与参数传递

Lua 的函数定义非常简洁,以下是一个简单的最大值函数示例:

function max(num1, num2)    if num1 > num2 then        result = num1    else        result = num2    end    return resultend

函数作为参数传递

Lua 的函数可以将另一个函数作为参数传递,例如:

myprint = function(param)    print("这是打印函数-##", param, "##")endfunction add(num1, num2, functionPrint)    result = num1 + num2    functionPrint(result)endmyprint(10)  -- myprint 函数作为参数传递add(2, 5, myprint)  -- 打印结果

多返回值

Lua 函数可以返回多个值,例如:

s, e = string.find("www.baidu.com", "baidu")print(s, e)

可变参数

Lua 支持可变参数,适用于处理不同数量的输入参数:

function average(...)    result = 0    local arg = {...}    for i, v in ipairs(arg) do        result = result + v    end    print("一共传入 "..#arg.." 个参数")    return result / #argendaverage(10, 55, 44, 55, 50)  -- 打印平均值

数据结构:ipairspairs

Lua 中的 ipairspairs 都用于遍历表(数组或字典),它们的主要区别在于:

  • ipairs 遍历的是键为整数的表,适用于传统数组。
  • pairs 支持键为任何类型的表,适用于字典或对象。

以下是一个示例:

pairs1 = { "xx", "we", "fdtrtg" }pairs2 = {    [1] = "yereeswd",    ["xx"] = "xx1",    ["yy"] = "yy1",    [4] = "yere"}for i, v in ipairs(pairs2) do    print(i, v)    print(pairs2[i])endfor i, v in pairs(pairs2) do    print(i, v)    print(pairs2[i])end

遍历未定义索引的表

如果索引不存在,Lua 会返回 nil,例如:

for i = 0, 2 do    print(pairs2[i])end

通过这些实例,可以看到 Lua 在编程实践中的强大功能。掌握这些技巧,你将能够更高效地完成各种开发任务。

转载地址:http://xsufk.baihongyu.com/

你可能感兴趣的文章
log4j补充
查看>>
log4j记录日志
查看>>
Log4j输出到控制台成功,写入文件失败 - Log4j和commons log的整合
查看>>
Log4j配置详解和实例
查看>>
Log4Net组件的应用详解
查看>>
log4net配置,正在用
查看>>
Logback configuration error detected:D:\log\exchange-platform\info.2021-07-27.log (系统找不到指定的路径。)
查看>>
Logback 配置文件例
查看>>
logback-spring.xml配置
查看>>
logback.xml 配置详解(1)
查看>>
logback.xml配置
查看>>
logback.xml配置导入spring无法启动:ch.qos.logback.core.joran.spi.JoranException: I/O error occurred while par
查看>>
logback异步日志AsyncAppender配置
查看>>
logback的使用和logback.xml详解
查看>>
logback配置
查看>>
logback配置文件详解
查看>>
Logback配置输出sql
查看>>
logger4j 日志配置内,各种符号详解
查看>>
logging.config报错FileNotFoundError
查看>>
logistic分类
查看>>