lua函数

作者: Mad_Elliot | 来源:发表于2018-11-02 12:26 被阅读0次

Lua 函数主要有两种用途:
1.完成指定的任务,这种情况下函数作为调用语句使用;
2.计算并返回值,这种情况下函数作为赋值语句的表达式使用。

  • 求最大值:
function GetMax(num1, num2)
    local result
    if num1 > num2 then
        result = num1
    else
        result = num2;
    end
    return result;
end

print(GetMax(21, 20))

>> 21
  • 函数作为参数传递给另一个函数:
function MyPrintFunc(param)
    print("我的打印函数:", param)
end

function Add(num1, num2, funcPrint)
    local result;
    result = num1 + num2
    funcPrint(result)
end

MyPrintFunc(10)
Add(20, 1, MyPrintFunc)

>> 我的打印函数:  10
>> 我的打印函数:  21
  • 函数的多值返回
GetAvgNSum = function(num1, num2, num3)
    local Sum = num1 + num2 + num3
    local Avg = Sum/3
    return Sum, Avg
end
print(GetAvgNSum(4,5,6))

>> 15   5
  • 函数的可变参数:
    Lua函数可以接受可变数目的参数,在函数参数列表中使用三点(...) 表示函数有可变的参数。Lua将函数的参数放在一个叫arg的表中,#arg表示传入参数的个数。(跟C#中的params 参数类似)
function GetAvg( ... )
    local result = 0
    local arg = { ... }
    for i, v in ipairs(arg) do
        result = result + v
    end
    print("总共传入" .. #arg .. "个数")
    return result/#arg
end
print("平均数为:", GetAvg(10, 5, 6))

>> 总共传入3个数
>> 平均数为:7

相关文章

  • Lua中的CAPI概述

    头文件lua.h: Lua提供的基础函数,包括创建Lua环境,调用Lua函数,读写Lua环境中的全局变量,以及注册...

  • JS函数charCodeAt的Lua实现

    JS函数charCodeAt的Lua实现 charCodeAt by Lua @(Lua JavaScript ...

  • Lua_API lua_call & lua_callk

    开篇 今天来简单了解一下 Lua 的函数调用:lua_call。 解析 函数调用协议 void lua_call ...

  • lua入门笔记 目录

    lua的中文API lua入门笔记1 类型 表达式 语句 函数lua入门笔记2 深入函数 深入函数 迭代器与泛型f...

  • lua基本函数说明

    lua函数说明 部分lua函数在lua的dash文档中没找到或者没有使用例子,特记录,备忘; getfenv(f)...

  • C Lua API-栈

    简介 C API 是一组能使用C代码与Lua交互的函数。其中包括读写Lua全局变量、调Lua函数、运行一段Lua代...

  • tolua调用c#函数及变量

    比如说你要调用一个lua函数 但你想把自身传给lua函数让这个函数调用c# 类的其他函数以及变量 首先是调用lua...

  • 函数

    Lua 函数 在Lua中,函数是对语句和表达式进行抽象的主要方法 Lua 提供了许多的内建函数,你可以很方便的在程...

  • Lua笔记--function

    Lua笔记--Function 函数定义 函数调用 省略括号 Lua函数调用其中有一个比较特别的地方:当函数只有一...

  • Lua 快速笔记(二) syntax

    参考programing in lua 语法 函数 常用函数 语法 局部变量和代码块 控制语句 Lua 认为 fa...

网友评论

      本文标题:lua函数

      本文链接:https://www.haomeiwen.com/subject/ldoatqtx.html